无法在 nginx 上运行多个服务器

无法在 nginx 上运行多个服务器

0

我有一台服务器,我想在其中运行一个 flask web 应用程序和一个 python 套接字应用程序。(应用程序运行完美)

当我运行我的 nginx 时,只打开了 80 端口(Web应用程序)。

server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://localhost:5859;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 2556;
    server_name _;
    
    location / {
        proxy_pass http://localhost:8975;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
}

我不太了解 nginx,但我确实阅读过它的一些文档。

这就是我想要实现的目标:https://nginx.org/en/docs/http/server_names.html

我尝试了多个端口,重新启动了 nginx,重新安装了 nginx,并且多次更改了标头,但都没有起作用。

(对不起,我的英语不好)

答案1

两个实例都监听同一个名称,第二个实例监听不同的端口。您可以让两个实例监听同一个端口,然后使用位置代理路由到正确的位置。您可以[可选]更改服务器名称,但随后您需要添加 /etc/hosts 条目

server { 
listen 80;
server_name flask.app;

location / {
    proxy_pass http://localhost:5859;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

}
server { 
listen 80;
server_name python.app;

location / {
    proxy_pass http://localhost:8975;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
  }

}

答案2

好的,我已经设法解决了这个问题,这就是我所做的:

  • 安装新的 Ubuntu 版本(20.04,之前我使用的是 22.04)
  • 运行 sudo apt update
  • 安装 nginx
  • 有效

所以吸取了教训,永远不要使用 ubuntu 22.04

相关内容