我的问题是如何让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