我目前在虚拟专用服务器上运行一个 AngularJS 应用程序。为了运行它,我使用 NGINX、Node 和“http-server”以及 pm2 来保持一切正常运行。
因此,我使用例如“node server.js”(端口 3000)启动后端,并在公共文件夹中设置了第二个“http-server”进程(我认为它在端口 8080 上运行)。
这是我的 NGINX 的配置:
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) 的应用程序。我还尝试在端口 3001 上使用节点运行后端,然后在端口 8081 上启动 http-server。
我应该如何配置我的 NGINX?
答案1
只需使用正确的 proxy_pass 指令添加第二个位置(根据您的配置):
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/;
}
您可以匹配地点或者如果您愿意,也可以在第二个不同的域上。
答案2
费德里科的回答对我有很大帮助,但我也想发布我的最终解决方案。
我现在设置了两个位置,一个用于后端(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/;
}
目前这对我有用!:)