我目前有一个节点/angular度的应用程序,当直接指向configuration的端口(8081为了解释我的情况)直接指向运行。 我可以发布,获取,放置,删除按预期。
我的目标是让节点应用程序在mydomain.com/subfolder上运行。 当nginxconfiguration为'/'的位置时,一切都按预期工作。 configuration如下:
upstream app_yourdomain { server 127.0.0.1:8081; } server { listen 0.0.0.0:80; server_name yourdomain.com yourdomain; access_log /var/log/nginx/yourdomain.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://app_yourdomain/; proxy_redirect off; } }
只要我将位置更改为/子文件夹,但是,我的get,post,put,delete请求会返回404响应。 尽pipe在节点应用程序中configuration了index.html。 configuration如下:
upstream app_yourdomain { server 127.0.0.1:8081; } server { listen 0.0.0.0:80; server_name yourdomain.com yourdomain; access_log /var/log/nginx/yourdomain.log; location /subfolder { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://app_yourdomain/; proxy_redirect off; } }
在我的angular厂,我有我的请求结构像return $http.get('/subfolder');
或者return $http.post('/subfolder', {data: data});
。
而且,在我的节点应用程序中,我定义了像app.get('/subfolder', somefunction);
这样的路线app.get('/subfolder', somefunction);
或app.post('/subfolder', somefunction);
再次,当我有从域的根运行的应用程序,它工作正常。 但是,如果将其configuration为位于域的子文件夹中,则请求不再有效。
我的最终目标是让多个节点应用程序从主域的子文件夹中运行。 我一直在争取这一段时间,并发现了多个文章托pipe多个节点的应用程序在一台服务器上,但他们似乎适应有独立的领域。 我想(如果可能)为这些作为单独的应用程序运行相同的域。
任何想法/技巧/指针? 谢谢!
修改你的Nginx文件看起来像这样:
upstream node{ server 127.0.0.1:3000; } listen 0.0.0.0:80; server_name yourdomain.com yourdomain; access_log /var/log/nginx/yourdomain.log; location /node { rewrite /node(.*) $1 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://node; proxy_redirect http://node/ /node; }
我从这里得到了上述: http : //skovalyov.blogspot.com/2012/07/deploy-multiple-node-applications-on.html它适用于我