带有 systemd 套接字激活的 uWSGI https 服务器

带有 systemd 套接字激活的 uWSGI https 服务器

我运行一个 https 网络服务器,使用 uWSGI(版本 2.0.14-debian;在装有 raspian / debian 9 stretch 的树莓派上)。

对于 https,我在配置文件中有以下几行:

[uwsgi]
...
protocol = https
https-socket = =0,/etc/ssl/certs/star.chained-certificate.crt,/etc/ssl/private/star.privatekey.pem
...

我在 systemd 服务文件中将端口设置为“--shared-socket 0.0.0.0:443”。只要我将 uwsgi 服务器作为 systemd 服务启动,此方法便可行。但当套接字激活时则不然

要使用套接字激活,我没有在 uwsgi.service 文件中指定共享套接字。当传入请求启动服务时,uwsgi 不会收到任何数据或请求,并且 https 请求超时。

查看源代码(uwsgi_setup_systemd() 和 uwsgi_bind_sockets()),systemd 提供的套接字可能绑定为“--socket”而不是“--shared-socket”(这可以解释为什么套接字激活在我手中对 http 有效但对 https 无效)。

为 https 和套接字激活设置 uWSGI 的正确方法是什么?

相关内容