{channel.title!channel.name} - 楚淮公司周东林

巧用反向代理去除项目中的工程名

最近实施毕节的一个项目,部署Tomcat的时候把项目名设置成 ROOT 就是不需要工程名访问嘛。发现有部分连接打不开,询问开发,只告诉我说部署的时候不能修改文件夹名。


1.事情是这样滴

最近实施毕节的一个项目,部署Tomcat的时候把项目名设置成 ROOT 就是不需要工程名访问嘛。发现有部分连接打不开,询问开发,只告诉我说部署的时候不能修改文件夹名。老火啊,有洁癖啊,见不得他弄那蹩脚的工程名放后面访问,客户用起来也不方便。谁叫人家是开发呢,公司支柱领导重视,又不敢得罪,只能苦逼了自己想到用 NGINX 做前端服务器,反向代理 TOMCAT .

2.服务架构

项目应用服务 Tomcat6, 访问路径:http://192.168.20.2:8082/bijie  

Tengine前端反向代理服务器: http://192.168.20.3

3.解决思路方法

先前考虑使用rewrite,怎么写都有几个路径打不开,后来反过来一想如果  /bijie/ 和 / 访问的一样的内容问题不就解决了吗。下面给出 Tengine 的关键代码。


 server {
     listen  80;
     server_name localhost;
  location / {
     proxy_pass http://192.168.20.2:8081/bijie/;
     proxy_redirect off;
     proxy_set_header HOST $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     client_max_body_size 10m;
     client_body_buffer_size 128k;
     proxy_connect_timeout 90;
     proxy_send_timeout 90;
     proxy_read_timeout 90;
     proxy_buffer_size 4k;
     proxy_buffers 4 32k;
     proxy_busy_buffers_size 64k;
     proxy_temp_file_write_size 64k;
              }
  location /bijie/ {
     proxy_pass http://192.168.20.2:8081/bijie/;
     proxy_redirect off;
     proxy_set_header HOST $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     client_max_body_size 10m;
     client_body_buffer_size 128k;
     proxy_connect_timeout 90;
     proxy_send_timeout 90;
     proxy_read_timeout 90;
     proxy_buffer_size 4k;
     proxy_buffers 4 32k;
     proxy_busy_buffers_size 64k;
     proxy_temp_file_write_size 64k;
                   }
        }

测试访问 http://192.168.20.3  一切正常。


浏览.发表于:2017-05-25 15:43:20