【问题标题】:Redirect default (80) port to 5000 - Flask + NGINX + Ubuntu将默认 (80) 端口重定向到 5000 - Flask + NGINX + Ubuntu
【发布时间】:2018-08-31 06:56:29
【问题描述】:

我能够在我的 IP:5000 路径上成功运行烧瓶应用程序。一个简单的Hello World 程序,在我的浏览器上显示输出。 现在,我想做的是使用代理配置 NGINX,这样如果我只访问显然在默认端口 80 上运行的 IP,它应该导航到端口5000 并显示我的应用程序的输出。

换句话说... 这是有效的:IP:5000 -> 输出 = Hello world 这不起作用:IP -> 无法访问此站点

我要添加的服务器设置是这样的。

server {
    listen       80;
    server_name  MY_IP;

    location / {
        proxy_pass http://127.0.0.1:5000;
    }
}

但是,我不确定在哪里添加这个?它应该在http 块内/etc/nginx/nginx.conf 内吗?

更新:根据下面给出的答案,我设法做到了以下几点。

在此之后我确实重新启动了 nginx。但是,我仍然面临同样的问题。应用可在 IP:5000 上运行,但不适用于 IP

【问题讨论】:

    标签: nginx flask


    【解决方案1】:

    你提到的配置应该在一个单独的文件中,假设example.com.conf/etc/nginx/conf.d下。您可以将所有配置放在/etc/nginx/nginx.conf 中,它会起作用,只是为了便于阅读,我们创建了单独的配置文件,当您将其添加到conf.d 中时会自动包含这些文件。

    【讨论】:

      【解决方案2】:

      好的,问题已解决。正如@senaps 和@Mukanahallipatna 所提到的,我在conf.d 下创建了新的配置文件。

      但是,我缺少的最重要的步骤是下面链接中提到的这部分。

      建议您启用最严格的配置文件,该配置文件仍将允许您配置的流量。由于我们尚未为我们的服务器配置 SSL,因此在本指南中,我们只需要允许端口 80 上的流量。

      Reference Link

      sudo ufw allow 'Nginx HTTP'
      

      现在,一切正常。

      【讨论】:

        【解决方案3】:

        将工作块放在名为/etc/nginx/conf.d 的文件夹中的any_name.conf 文件中,它将自动加载。

        您需要重新启动您的nginx

        更新: 你用什么来服务flask?如果你使用uwsgi,那么你应该使用这样的配置:

        include uwsgi_params;
        uwsgi_pass unix:path_to_your.sock;
        

        uwsgi_pass 的其他选项是:

        uwsgi_pass localhost:9000;    #normal
        uwsgi_pass uwsgi://localhost:9000;   
        uwsgi_pass suwsgi://[2001:db8::1]:9090; #uwsgi over ssl
        

        如果您使用gunicorn 为您的flask 应用程序提供服务,那么您当前的配置应该没问题,检查您的应用程序是否正在运行以及是否可以获得索引页面或不使用 5000 端口,然后检查其他问题。你的配置看起来不错,也许是烧瓶没有运行的问题?

        【讨论】:

          猜你喜欢
          • 2018-07-18
          • 1970-01-01
          • 2014-07-02
          • 2017-10-07
          • 2016-04-23
          • 2018-06-02
          • 2015-06-21
          • 2018-04-16
          • 2021-05-28
          相关资源
          最近更新 更多