使用nginx的rewrite实现代理指定目录命令方法

使用nginx的rewrite实现代理指定目录命令方法

使用nginx代理Tomcat,Tomcat发布web的时候通常都是带着项目名称的,

比如项目名称为“aven",那么发布之后就需要使用:http://127.0.0.1:8080/aven 来访问,

如何让别人直接通过IP即:http://127.0.0.1 来访问呢?

可以使用rewrite命令来实现这个功能,配置文件如下:

server {
    listen      80;
    server_name  localhost;
    location / {
        rewrite ^/(.*)$ /aven/$1 last;
    }
    location ~* ^/aven/.*$ {
        proxy_pass http://127.0.0.1:8080;
    }
}

这种配置方法在使用中还是有一些问题,

1、Url中还是会看到aven这个目录;

2、Session丢失了。

目前还没找到好的解决方案。

2017-03-30更新

之前的方式出现了Session丢失的问题,一直没找到解决方案;
今天又有小伙伴问到,来更新一下。
Session丢失应该是 rewrite 的时候 没有设置 header 的原因。


server {
    listen 80;
    server_name  localhost;
 
    access_log  logs/quancha.access.log  main;
    error_log  logs/quancha.error.log;
    root   html;
    index  index.html index.htm index.php;
 
    ## send request back to apache ##
    location / {
        proxy_pass  http://127.0.0.1:8080/aven;
 
        #Proxy Settings
        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;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        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;
   }
}


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值