-我正在使用NGINX作为静态服务器/反向代理在Linode VPS上部署几个基于Flask的站点。
-通过读取传入的标头并为每个给定站点使用/ etc / nginx .conf文件,我完全理解了它对多个站点的工作方式。
-我难以确定的是,如何启动安装在每个网站venv中的gunicorn来处理从VPS范围的NGINX服务器发送的WSGI调用。
>-我看到教程中使用了supervisor,但仅针对单个站点,而不是在VPS级别运行的supervisor(如NGINX)如何为特定站点启动Gunicorn。我还不清楚为什么每个站点都有自己的Gunicorn安装。如何运作?
很抱歉,如果这重复了其他问题,但是我在这里或其他地方找不到任何答案。
答案 0 :(得分:1)
NGINX应该将流量重定向到适当的端口。每个烧瓶站点都需要它自己的gunicorn工人来启动。
因此,例如,您在超级用户配置中用于每个站点的运行命令如下所示:
[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;
}
}