--我正在Linode VPS上部署几个基于Flask的站点,使用NGINX作为静态服务器/反向代理。
--通过读取传入的头文件并对每个给定站点使用/etc/nginx .conf文件,我完全理解这在多个站点上是如何工作的。
--我很难弄清楚的是,安装在每个站点的venv中的gunicorn是如何启动的,以处理从VPS范围的NGINX服务器发送的WSGI调用。
--我看到在教程中使用了supervisord,但仅针对单个站点,而不是在VPS级别运行的supervisord (如NGINX)如何为特定站点启动Gunicorn。我也不明白为什么每个站点都有自己的Gunicorn安装。这是怎么回事?
抱歉,如果这重复了其他问题,但我在这里或其他地方找不到任何答案。
发布于 2019-03-20 04:09:24
NGINX应该将流量重定向到适当的端口。每个flask站点都需要自己的黑角工作人员为其启动。
例如,在supervisor配置中,您的每个站点的run命令如下所示:
[program:site1]
command=venv1/bin/gunicorn --workers num_workers --bind localhost:8081 flask_app1:app
#etc...
[program:site2]
command=venv2/bin/gunicorn --workers num_workers --bind localhost:8082 flask_app2:app
#etc...
希望这能增加一些清晰度。
编辑:
以下是其中一个监听http的站点的NGINX配置示例。
#Config Contents
server {
listen 80;
server_name site.your.domain;
# Or use the following if you do not have a domain
#server_name 123.123.123.123;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
}
}
https://stackoverflow.com/questions/55194927
复制相似问题