我目前有一个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/; }
这适合我现在! 🙂