如何配置nginx的反向代理?

线上云服务器A是 centos 系统安装了nginx。线下两个 windows 服务器B,C都使用 tomcat 部署了名称相同的项目叫 proj,并且都使用了默认的8080端口,3个服务器通过 openvpn 纳入一个局域网中。现在想要达到这样的效果:
客户访问云端服务器(通过IP地址,没有域名),云服务器通过 nginx 代理 B,C 服务器的项目,访问地址如:
http://云服务器IP地址/projA/aa.jsp
http://云服务器IP地址/projB/aa.jsp
应该如何配置 nginx,或者有其他更好的方法?

阅读 2.5k
1 个回答

假设服务器B、C连接上openvpn后,获取到的IP分别是:10.8.0.10 和 10.8.0.20。
同时服务器A也连上了openvpn服务器,IP为10.8.0.30。

nginx配置如下:

server {
        listen 80;
        server_name _;

        root /var/www/test.com;
        index index.html;

        location / {
                return 200 "/";
        }
        location /projA/ {
                rewrite ^/projA/(.*)$ /$1 break;
                proxy_pass http://10.8.0.10:8080;  #服务B的IP端口
        }
        location /projB/ {
                rewrite ^/projB/(.*)$ /$1 break;
                proxy_pass http://10.8.0.20:8080;  #服务C的IP端口
        }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题