如何在一个虚拟机(Azure)中使用nginx托管运行在不同端口(3000和5000)上的2个nodejs服务器

yyyllmsg  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(43)

是否可以访问两个nodejs服务器,如public_ip:3000public_ip:5000?我在/var/www/html文件夹中有一个index.jsapp.js文件。index.js在端口3000上运行,app.js在端口5000上运行。我只能访问在端口3000上运行的服务器。如果我尝试通过以下方式访问其他服务器public_ip:5000我收到一个502错误。
这是/etc/nginx/site-available/default文件配置。

server {

    listen 80 default_server;
    listen [::]:80 default_server;
    
    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
         proxy_pass http://localhost:3000;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {

    listen 80;
    listen [::]:80;
    
    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
         proxy_pass http://localhost:5000;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
    }
}

字符串

6xfqseft

6xfqseft1#

可能有一个错误等待让我纠正,并把更新的代码尝试一次,让我知道。

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location /app1/ {
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /app2/ {
        proxy_pass http://localhost:5000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

字符串
我在location块中添加了路径前缀(/app 1/和/app 2/)。http://public_ip/app 1/用于在端口3000上运行的Node.js服务器,http://public_ip/app 2/用于在端口5000上运行的Node.js服务器。还在proxy_pass URL中添加了一个尾随斜杠。

sudo service nginx restart


不要忘记重新启动Nginx以使更改生效。

相关问题