使用NGINX在同一台服务器上设置第二个Angular应用程序

我目前有一个AngularJS应用程序运行在我的虚拟专用服务器上。 为了运行这个,我使用NGINX,Node和'http-server'和pm2来保持所有的运行。

所以我开始我的后端使用例如'node server.js'(端口3000),我设置了第二个'http-server'进程(我认为运行在端口8080)在公用文件夹中。

这是我的NGINX的configuration:

server { listen 80; server_name mywebsite.be; 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://127.0.0.1:3000/; } } 

现在我想要安装Angular(2)创build的第二个应用程序。 我试图在端口3001上运行我的后端节点,然后在端口8081上启动http-server。

我应该如何configuration我的NGINX?

只需使用正确的proxy_pass指令添加第二个位置(根据您的configuration):

 location /otherlocation { 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://127.0.0.1:3001/; } 

你可以在地点匹配,或者如果你愿意,在第二个不同的域名。

费德里科的回答帮助我进一步,但我也想发布我的最终解决scheme。

我现在设置了两个位置,一个用于后端(api),另一个用于gui。

 location /backend/ { 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://127.0.0.1:3001/; } location /gui/ { 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://127.0.0.1:4200/; } 

这适合我现在! 🙂