将默认(80)端口重定向到5000-Flask + NGINX + Ubuntu

时间:2018-08-31 06:56:29

标签: nginx flask

我可以在 IP:5000 路径上成功运行Flask应用程序。一个简单的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块内吗?

更新:根据以下给出的答案,我设法完成了以下操作。

enter image description here enter image description here

此后,我确实重新启动了Nginx。但是,我仍然面临着同样的问题。应用程序可在 IP:5000 上运行,但不能在 IP

上运行

3 个答案:

答案 0 :(得分:0)

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

您将需要重新启动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端口获取索引页,然后检查其他问题。您的配置看起来不错,也许这是烧瓶未运行的问题?

答案 1 :(得分:0)

您提到的配置应位于单独的文件中,并假设example.com.conf下的/etc/nginx/conf.d。您可以将所有配置都放在/etc/nginx/nginx.conf中,并且它可以正常工作,只是为了提高可读性,我们创建了单独的配置文件,当您将其添加到conf.d中时会自动包含这些文件。

答案 2 :(得分:0)

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

但是,我最缺少的imp步骤是以下链接中提到的这一部分。

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

Reference Link

sudo ufw allow 'Nginx HTTP'

现在,一切正常。