我在服务器上运行两个Flask应用程序。第一个在/etc/nginx/sites-available/alpha-project
中有一个nginx配置:
server {
listen 80;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
}
因此,每当我访问mywebsite.com
时,我都可以使用此应用程序(名为alpha-project
)。
现在我有另一个带有配置文件beta-project
{@ 1}}的烧瓶应用程序:
/etc/nginx/sites-available/beta-project
我想在访问server {
listen 80;
location /beta {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3034;
}
}
时使用beta-project
。
但是,当我访问mywebsite.com/beta
时,服务器始终返回404.似乎我仍在使用mywebsite.com/beta
应用程序。
如何让nginx重定向到我的alpha
应用程序?
答案 0 :(得分:1)
您的问题是两台服务器都没有虚拟名称。您需要将它们组合成一个配置
server {
listen 80;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
location /beta {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3034;
}
}
或者您需要使用两个单独的虚拟服务器名称
server {
listen 80;
server_name servera;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
}
server {
listen 80;
server_name serverb;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
}
然后,您可以访问http://servera/
的主服务器和http://serverb/beta
的其他服务器。 servera
和serverb
名称都应使用/etc/hosts
或DNS名称解析为IP