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