Nginx子路径到端口映射

Nginx子路径到端口映射

2014年11月18日 15:17:50 阅读数:4386更多

个人分类: nginx

有时候需要使用nginx来将子路径映射到某个特殊端口上,例如下面的场景。

nginx所在服务器的域名为www.service.com,监听在443端口,SSL已经打开。

此服务器上还有一个https服务名为test,运行在444端口上。这时候需要将发到https://www.service.com/test 的请求,全部转发到https://www.service.com:444/ 上。

看下面的nginx配置

test.conf

server{

listen 443 default_server;

server_name [www.service.com](http://www.service.com/);







ssl  on;

ssl_certificate  /opt/nginx/conf.d/server.crt;

ssl_certificate_key  /opt/nginx/conf.d/server.key.unsecure;

ssl_client_certificate /opt/nginx/conf.d/ca.crt;

ssl_verify_client off;













client_max_body_size 100m;







location / {

        rewrite / [https://www.service.com:443/test/](https://www.service.com/test/) permanent;

        proxy_set_header   Host             $host:443;

        proxy_set_header   X-Real-IP        $remote_addr;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_set_header Via    "nginx";

}







location ^~/test/ {

        proxy_pass  <https://www.service.com:444/>;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_set_header Via    "nginx";

}

}