设置Nginx代理到不同的路径下

比如,我的restify项目,在本地测试是: http://localhost:3000/

但是在正式的服务器上,可能是这样的:http://app.my.com/my-app/,需要Nginx做proxy到Node.js的http://localhost:3000/

需要在Nginx下配置url rewrite,以下是一个完整的配置示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server_names_hash_bucket_size  64;

server {
listen 80;
server_name app.my.com;

location /my-app/ {
rewrite ^/my-app(/.*)$ $1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://localhost:3000;
}
}