in coding

uwsgi 1.9+ mountpoint error

最近团队开发新产品,顺带折腾更新了服务器和整个开发环境版本。

运行python的服务uwsgi从0.9+升级到了最新的1.9+,发现一个bug,折腾了我一个通宵……

uwsgi原有的版本,vhost模式下,可以在nginx中配置SERVER_NAME来指定服务名。


location / {
    include uwsgi_params;
    uwsgi_pass unix:/var/run/uwsgi-python/sock;
    uwsgi_param UWSGI_PYHOME /usr/local/pyenv/app;
    uwsgi_param UWSGI_CHDIR  $document_root;
    uwsgi_param UWSGI_SCRIPT app_name:app;
    uwsgi_param SERVER_NAME app_name;
}

该配置会指定服务名并在uwsgi启动日志中显示

WSGI app 0 (mountpoint='app_name')

但是在最新的uwsgi v1.9.12中,该配置失效,无法正确的配置mountpoint,日志会显示

WSGI app 0 (mountpoint='')

这会导致访问指定地址时在不同的app之间跳来跳去,无法正常使用。经测试1.9.12~1.9.7均存在同样问题,1.9.5版本以下会指定server+port替代

WSGI app 2 (mountpoint='domain_name:8080|')

我在github上提交了该bug,https://github.com/unbit/uwsgi/issues/321,作者修复之前建议大家先使用1.9.5版本。

NOTE:
作者已经修复了该bug,不过仍使用了server+port的模式,不知道是出于什么理由。目前版本已更新到1.9.13,通过pip install -U uwsgi可更新安装。

Write a Comment

Comment