我可以在 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
块内吗?
更新:根据以下给出的答案,我设法完成了以下操作。
此后,我确实重新启动了Nginx。但是,我仍然面临着同样的问题。应用程序可在 IP:5000 上运行,但不能在 IP
上运行答案 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上的流量。
sudo ufw allow 'Nginx HTTP'
现在,一切正常。