【问题标题】:nginx redirect to other application if 404如果 404,nginx 重定向到其他应用程序
【发布时间】:2017-09-08 12:40:25
【问题描述】:

我正在我的服务器上运行两个 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 应用程序?

【问题讨论】:

    标签: python nginx flask uwsgi


    【解决方案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 访问另一个服务器。 serveraserverb 名称都应使用 /etc/hosts 或 DNS 名称解析为 IP

    【讨论】:

      猜你喜欢
      • 2018-07-17
      • 2018-03-11
      • 2020-07-17
      • 2018-09-26
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      相关资源
      最近更新 更多