如果 404 nginx 重定向到其他应用程序
nginx redirect to other application if 404
我的服务器上有两个 运行 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
的烧瓶应用程序,其配置文件为 /etc/nginx/sites-available/beta-project
:
server {
listen 80;
location /beta {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3034;
}
}
我想在访问 mywebsite.com/beta
时使用我的 beta-project
。
但是当我访问mywebsite.com/beta
时,服务器总是返回404。看来我还在使用alpha
应用程序。
如何使 nginx 重定向到我的 beta
应用程序?
你的问题是两台服务器都没有虚拟名称。您需要将它们组合成一个配置
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
我的服务器上有两个 运行 Flask 应用程序。第一个在 /etc/nginx/sites-available/alpha-project
:
server {
listen 80;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
}
因此,每当我访问 mywebsite.com
时,我都可以使用这个应用程序(名为 alpha-project
)。
现在我有了另一个名为 beta-project
的烧瓶应用程序,其配置文件为 /etc/nginx/sites-available/beta-project
:
server {
listen 80;
location /beta {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3034;
}
}
我想在访问 mywebsite.com/beta
时使用我的 beta-project
。
但是当我访问mywebsite.com/beta
时,服务器总是返回404。看来我还在使用alpha
应用程序。
如何使 nginx 重定向到我的 beta
应用程序?
你的问题是两台服务器都没有虚拟名称。您需要将它们组合成一个配置
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 名称