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

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

我目前在虚拟专用服务器上运行一个 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/;
}

目前这对我有用!:)

相关内容