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

问题描述 投票:0回答:3

我已经成功地在我的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区域内吗?

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

enter image description here enter image description here

之后我确实重启了nginx。但是,我仍然面临同样的问题。应用程序适用于IP:5000,但不适用于IP

nginx flask
3个回答
0
投票

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


0
投票

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

但是,我失踪的最重要的一步是在下面的链接中提到的这一部分。

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

Reference Link

sudo ufw allow 'Nginx HTTP'

现在,一切都运转良好。


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端口获取索引页面,然后检查其他问题。你的配置看起来不错,也许这是烧瓶没有运行的问题?

© www.soinside.com 2019 - 2024. All rights reserved.