如何将localhost:9292 / json重定向到localhost:80 /使用Nginx反向代理?

时间:2013-04-25 09:02:02

标签: nginx reverse-proxy

 server {   
        listen 80;
        server_name localhost;
        location / {
            index index.html;
            root /Users/Lin/Codes/JS/Emberjs/yeoman-ember/dist;
        }  

        location ~* ^/json {
            root
            proxy_pass http://localhost:9292;

        }
    }

configure kinda有效,但只传递

localhost:9292/jsonlocalhost/json

但我想要的是

localhost:9292/json到'localhost'

localhost:9292/json/post到'localhost / post'

我认为我需要做的是设置root或做一些重写,任何人都有一些想法?

1 个答案:

答案 0 :(得分:0)

如果要将所有连接从端口9092传递到80,则表示您正在侦听错误的端口。

更改您正在收听的端口9092:

server {   
    listen 9092;
    server_name localhost;

    root /Users/Lin/Codes/JS/Emberjs/yeoman-ember/dist;

    location / {
        index index.html;

    }  

    location ~* ^/json {
        proxy_pass http://localhost:80;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
}

尽量避免在位置块内使用root,这是常见的陷阱,如nginx documentation

中所述

此外,您还需要配置另一台服务器来侦听端口80。