2016-01-20 107 views
4

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

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

最新配置的Nginx的代理一个端口是这样的:

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

利用这种配置,当我在

www.example.com/app访问流星应用

所有* .js和* .css文件请求正在转发到

www.example.com/xxxxxxxxxxxx.js

相反,它应该是为

www.example.com/app/xxxxxxxxxxxx.js

有人能解释什么我错过了Nginx配置或Meteor配置,以指向我的流星应用程序

www。 example.com/app

+0

好像有类似SOF - http://stackoverflow.com/questions/ 32170123/mulitple-meteor-sites-behind-nginx – Samba

+0

很多很好的答案在这里:http://stackoverflow.com/questions/18003689/recommended-nginx-configuration-for-meteor – 2016-01-22 06:13:35

回答

0

删除此行:

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

它是将URL转换像www.example.com/app/xxxxxxxxxxxx.jswww.example.com/xxxxxxxxxxxx.js

+0

需要重写为流星(或node.js )应用程序提供来自/不是来自'/ app'的请求,如此nix必须将请求转发到http://127.0.0.1:4000/ – Samba