在 uwsgi 中创建一个默认虚拟主机来处理 http 请求

Create a default vhost to serve http request in uwsgi

我在 Linux 运行 python 插件上安装了 uwsgi 2.0.19。我使用不同的应用程序为 http(s) 流量提供服务,每个应用程序用于我的托管域的特定记录,使用这种配置将它们注册到前端 uwsgi 服务器。

subscribe2 = server=x.x.x.x:4443,key=domain.com,sni_key=/etc/ssl/private/domain.com.key,sni_cert=/etc/ssl/certs/domain.com.crt
subscribe2 = server=x.x.x.x:4443,key=domain.com:443,sni_key=/etc/ssl/private/domain.com.key,sni_cert=/etc/ssl/certs/domain.com.crt
subscribe2 = server=y.y.y.y:4443,key=domain.com,sni_key=/etc/ssl/private/domain.com.key,sni_cert=/etc/ssl/certs/domain.com.crt
subscribe2 = server=y.y.y.y:4443,key=domain.com:443,sni_key=/etc/ssl/private/domain.com.key,sni_cert=/etc/ssl/certs/domain.com.crt 

现在,当我到达其中一台前端服务器以访问不存在的主机时,我收到了这样的错误(我假设 TCP 连接已关闭)

curl: (52) Empty reply from server

我希望能够为这种情况提供一个 default/catchall 密钥,它允许 return 一个 HTTP 状态 404,就像我在 Apache 中使用 _default_ vhost 所做的那样.可以吗

为了实现这个,你需要在前端uwsgi服务器

上使用http-subscription-fallback-key定义一个后备应用程序
http-subscription-fallback-key=default

default 是一个标准的应用程序,像任何其他应用程序一样注册在 frontal uwsgi 上

subscribe2 = server=x.x.x.x:4443,key=default
subscribe2 = server=x.x.x.x:4443,key=default:80