gpt4 book ai didi

python - 如何使用 unix 套接字加载 2 个 Flask 应用程序来为 nginx/uwsgi 的 2 个子域提供服务?

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:40 26 4
gpt4 key购买 nike

我正在关注this uwsgi guide设置nginx/uwsgi让 1 个 Flask 应用程序运行“www”子域,另一个 Flask 应用程序运行“api”子域。我的nginx.conf :

worker_processes  1;

events {
worker_connections 1024;
}

http {
access_log /path/to/access_nginx.log combined;
error_log /path/to/error_nginx.log crit;

include mime.types;
sendfile on;

server {
server_name api.example.com;
listen 14265;

location / {
include uwsgi_params;
uwsgi_param UWSGI_SCRIPT wsgi_api;
uwsgi_pass unix:///path/to/api.sock;
}
}

server {
server_name www.example.com;
listen 14265;

location / {
include uwsgi_params;
uwsgi_param UWSGI_SCRIPT wsgi;
uwsgi_pass unix:///path/to/wsgi.sock;
}
}
}

为了启动 uwsgi,我这样做:

#!/bin/bash
APPNAME=nginx
# Start uwsgi
${HOME}/webapps/${APPNAME}/bin/uwsgi \
--uwsgi-socket "${HOME}/webapps/${APPNAME}/wsgi.sock" \
--master \
--workers 1 \
--max-requests 10000 \
--harakiri 60 \
--daemonize ${HOME}/webapps/${APPNAME}/uwsgi.log \
--pidfile ${HOME}/webapps/${APPNAME}/uwsgi.pid \
--vacuum \
--python-path ${HOME}/webapps/${APPNAME}

# Start nginx
${HOME}/webapps/${APPNAME}/bin/nginx

当我访问www.example.com时它按预期工作。但是,我收到 api.example.com 的 502 错误。要修复 502 错误,我可以更改 api.sockwsgi.sock在我的nginx.conf但它会给我 www.example.com 的页面当我访问 api.example.com (尽管 wsgi.pywsgi_api.py 不同)。

编辑:我发现的在 nginx/uwsgi (包括我链接到的)上设置多个子域的示例都显示了如何使用静态站点设置子域。我找不到一个可以展示如何使用 unix 套接字执行此操作的人。

最佳答案

I've also noticed that only wsgi.sock gets created

这就是你问题的答案,如果你没有得到api.sock,nginx将无法将查询传递给它。因此,您将得到 502。您应该为每个应用程序启动 uwsgi:

#!/bin/bash

# Start uwsgi
for APPNAME in "app_1" "app_2"
do
uwsgi \
--uwsgi-socket "${HOME}/webapps/${APPNAME}/wsgi.sock" \
--master \
--workers 1 \
--max-requests 10000 \
--harakiri 60 \
--daemonize ${HOME}/webapps/${APPNAME}/uwsgi.log \
--pidfile ${HOME}/webapps/${APPNAME}/uwsgi.pid \
--vacuum \
--python-path ${HOME}/webapps/${APPNAME}
done

关于python - 如何使用 unix 套接字加载 2 个 Flask 应用程序来为 nginx/uwsgi 的 2 个子域提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com