在我的开发系统上,我正在使用 uwsgi 和 nginx 运行 Flask WSGI 应用程序。但是在生产服务器上我需要使用 Apache 而不是 nginx,所以我正在尝试这样做。在 nginx 中,站点的安装方式如下:
location /flaskapp { uwsgi_pass unix:/tmp/flaskapp.sock; }
它有效。在 Apache 我试过这个:
ProxyPass /flaskapp unix:/tmp/flaskapp.sock|uwsgi://flaskapp
这在日志文件中给了我一个 503 错误:
[Fri Jan 01 13:19:45.551524 2021] [proxy:error] [pid 14167] (2)No such file or directory: AH02454: uwsgi: attempt to connect to Unix domain socket /tmp/flaskapp.sock (flaskapp) failed
[Fri Jan 01 13:19:45.551802 2021] [:error] [pid 14167] [client ::1:48950] AH10101: failed to make connection to backend: httpd-UDS:0
我启用了 mod_proxy 和 mod_proxy_uwsgi 模块。我不明白“没有这样的文件或目录”位。套接字文件显然是它应该在的位置。
当然,我停止了 nginx,然后重新启动了 Apache,以防止 nginx 保留该套接字。
ProxyPass 指令的文档没有解释管道(“|”)字符后面的部分是什么意思,所以我不知道该放什么以及为什么。