Nginx从入门到实战(五):反向代理

1、反向代理到同一个tomcat

目标:通过Nginx访问tomcat服务器,对外暴露nginx,而不暴露tomcat

1.准备一个tomcat,保证可以访问。我这边准备的是:http://192.168.1.117:8087,效果如下
Nginx从入门到实战(五):反向代理_第1张图片
2.修改nginx的配置文件,server_name改成IP地址,在location中加入proxy_pass http://127.0.0.1:8087; 表示要代理的服务器。执行./nginx -s reload重新加载配置(或重启nginx都可以)
Nginx从入门到实战(五):反向代理_第2张图片
3.启动测试:http://192.168.1.117:80
Nginx从入门到实战(五):反向代理_第3张图片
由此,有nginx反向代理到了tomcat,配置完成。

2、反向代理到多个tomcat

目标:通过nginx访问http://192.168.1.117:8001/web1 跳转到http://192.168.1.117:8087 tomcat服务器;访问http://192.168.1.117:8001/web2 跳转到http://192.168.1.117:8088 tomcat服务器;

在 1 的基础上,再部署启动一个端口为8088的tomcat。启动效果如下图:

注意:如果不清楚一个linux中如何配置启动多个tomcat的话,请移步:https://blog.csdn.net/wdy_2099/article/details/72627917
Nginx从入门到实战(五):反向代理_第4张图片

在8087的tomcat的webapps下新建web1目录,其中存放index.html文件,里面写上web1 8087!

在8088的tomcat的webapps下新建web2目录,其中存放index.html文件,里面写上web2 8088!

修改nginx.conf配置文件,再新添加一个server配置:

server {
    listen       8001;
    server_name  192.168.1.117;

    location ~ /web1/ {
        proxy_pass http://127.0.0.1:8087;
    }
    location ~ /web2/ {
        proxy_pass http://127.0.0.1:8088;
    }
}

测试:

1.访问http://192.168.1.117:8001 发现是可以访问nginx的 Nginx从入门到实战(五):反向代理_第5张图片
2.访问http://192.168.1.117:8001/web1/index.html,效果如下:

在这里插入图片描述
3.访问http://192.168.1.117:8001/web2/index.html ,效果如下:
在这里插入图片描述
由此,通过路径反向代理不同服务器的方式就完成了。

如果访问不了,则可能是端口没有开放,如下方式处理:

# 如开放3000端口:(CentOS 6方式) 
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
# CentOS 7方式
查看开放的端口号 
firewall-cmd --list-all 
设置开放的端口号 
firewall-cmd --add-service=http –permanent 
firewall-cmd --add-port=80/tcp --permanent 
重启防火墙 
firewall-cmd –reload 

END

你可能感兴趣的:(Nginx,nginx,反向代理)