用于Meteor部署的Nginxconfiguration

我的问题是如何让Nginx将域名(www.example.com/app)转发到同一台服务器上的meteor应用程序。 Nginx运行在80端口上,Meteor运行在同一台机器上的4000端口上。

以下是详细信息:我正尝试使用Nginx在我自己的服务器上托pipemeteor制作的应用程序。 我似乎无法让Nginx将我的域名转发到4000端口,在那里meteor可以捡起它并处理网页。

Nginx代理端口的最新configuration是这样的:

server { listen 80 default_server; listen [::]: 80 default_server ipv6only = on; root /usr/share/nginx/html; index index.html index.htm; server_name localhost; location / { try_files $uri $uri / = 404; } location /app { rewrite ^/app(.*) /$1 break; proxy_pass http://127.0.0.1:4000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header X-Forwarded-For $remote_addr; } } 

有了这个configuration,当我访问meteor应用程序

www.example.com/app

所有* .js和* .css文件请求都被转发到

www.example.com/xxxxxxxxxxxx.js

相反,它应该是

www.example.com/app/xxxxxxxxxxxx.js

有人可以解释我在Nginxconfiguration或meteorconfiguration丢失什么,以指向我的meteor应用程序

www.example.com/app

删除这一行:

  rewrite ^/app(.*) /$1 break; 

它将诸如www.example.com/app/xxxxxxxxxxxx.js之类的URL转换回www.example.com/xxxxxxxxxxxx.js