0
 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;

        }
    }

配置有点工作,但它只通过

localhost:9292/jsonlocalhost/json.

但我想要的是

localhost:9292/json到“本地主机”

localhost:9292/json/post到“本地主机/帖子”

我想我需要做的是设置root或进行一些重写,有人有什么想法吗?

4

1 回答 1

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;
    }
}

尽量避免在 location 块中使用 root,这是一个常见的陷阱,如nginx 文档中所述

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

于 2013-04-25T11:23:14.407 回答