如何通过nginx反向代理一个特定的URL?

时间:2014-04-24 07:36:04

标签: nginx reverse-proxy

我有一台运行在http://localhost:8080的服务器我希望nginx代理此服务器的特定网址。

例如,我只希望将http://localhost:8080/test/(.*)反向代理http://localhost/test/(.*)

我正在将另一台服务器代理到http://localhost/

2 个答案:

答案 0 :(得分:2)

仅仅是一个简单的location块?

server {
    # ... other stuff

    location /test/ {
        try_files $uri @testproxy;
    }

    location @testproxy {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        # all your params
    }
}

答案 1 :(得分:2)

我以这种方式做到了它并且它起作用了。无论如何,谢谢你的评论。 :)

server {
    listen 80;
    # ... other stuff

    upstream backend1 {
        server 127.0.0.1:8080;
    }

    location /test/ {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://backend1/test/;
    }
}