我已经成功地在我的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
您提到的配置应该在一个单独的文件中,假设example.com.conf
下的/etc/nginx/conf.d
。您可以将所有配置放在/etc/nginx/nginx.conf
中并且它将起作用,只是为了便于阅读,我们创建了单独的配置文件,当您在conf.d
中添加它时将自动包含这些文件。
好的,问题是固定的。正如@senaps和@Mukanahallipatna所提到的,我在conf.d下创建了新的配置文件。
但是,我失踪的最重要的一步是在下面的链接中提到的这一部分。
建议您启用限制性最强的配置文件,该配置文件仍允许您配置的流量。由于我们尚未为我们的服务器配置SSL,因此在本指南中,我们只需要允许端口80上的流量。
sudo ufw allow 'Nginx HTTP'
现在,一切都运转良好。
将工作块放在名为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端口获取索引页面,然后检查其他问题。你的配置看起来不错,也许这是烧瓶没有运行的问题?