nginx配置反向代理

在nginx的配置文件中,添加以下配置:

server {
    listen 80;
    server_name b.zyf.win;

    location / {
        proxy_pass http://原地址;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Accept-Encoding "";
    }

    sub_filter 原地址 b.zyf.win;
    sub_filter_once off;
}

如果想要把http://example.com/upload/指向某运行在本地8080端口的Node.js服务,那么proxy_pass应如下配置:

server_name example.com;
location /upload/ {
        proxy_pass http://127.0.0.1:8080/;
        #other proxy commands...
    }

请注意,在上述代码中,proxy_pass后的地址是否以/结尾,其效果是不同的。同样是访问http://example.com/upload/,下面是两种不同的情况:

  • proxy_pass http://127.0.0.1:8080/; 代理至 http://127.0.0.1/upload/
  • proxy_pass http://127.0.0.1:8080; 代理至 http://127.0.0.1/upload/upload/