NGINX 多个反向代理

NGINX 多个反向代理

我在安装了 NGNIX 的 ubuntu 服务器中有两个 NodeJS 后端在端口 3000 和 4000 上运行。

我没有任何域名,但我想使用 nginx 作为反向代理用我的 IP 地址像这样。

  • xxx.xxx.xxx.xxx/app1 => 应将所有请求转发到端口 3000
  • xxx.xxx.xxx.xxx/app2 => 应将所有请求转发到端口 4000

这是我在 NGINX 配置中尝试过的,但 NGINX 返回 404 未找到响应。

/etc/nginx/站点可用目录,我已经修改默认就像这样,

server {

    listen 80;
    listen [::]:80;

    location /app1 {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /app2 {
        proxy_pass http://127.0.0.1:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

}

我该如何实现它?谢谢!

答案1

干得好

本地主机上使用不同端口的多个 http 服务器

server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://localhost:8001 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://localhost:8002 https://mydomain-02.com;
      ...
    }
}

本地主机上使用基于主机名的站点的单个 http 服务器

server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://s1.mydomain:4000 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://s2.mydomain:4000 https://mydomain-02.com;
      ...
    }
}

相关内容