uwsgi|uwsgi 注意事项

http 、http-socket、socket 的区别

  • http 和 http-socket 选项是完全不同的。第一个生成一个额外的进程,转发请求到一系列的worker (将它想象为一种形式的盾牌,与apache或者nginx同级),而第二个设置worker为原生使用http协议。
  • socket 模式:接收的是uwsgi 协议的数据包,前台需配合nginx 做负载均衡转发过来
  • http-socket 模式: 接收的是http 协议的数据包,前台可配合nginx 转发
  • http 模式: 额外启动一个http 进程(类似nginx)转发 uwsgi 协议的数据包到worker,http 模式也可只当成nginx 使用
  • 当使用 http 模式启动时,worker 进程会随机监听一个端口, 当curl 测试返回curl: (52) Empty reply from server, 通常可能是iptables 防火墙的原因,导致请求无法到达workerj进程;
编译的uwsgi 打包到新环境,无法找到python 解释器;
  • 问题
    Could not find platform independent libraries
    Could not find platform dependent libraries Consider setting $PYTHONHOME to
    [:] Fatal Python error: initfsencoding: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings'

  • 2种解决办法:
    1. python 安装到,编译uwsgi环境时python的路径
    2. 指定PYTHONHOME 环境变量,export PYTHONHOME=python 安装路径, PYTHONHOME 下一定必须有 bin/ 、lib/
一定要启动master manager, 来管理子进程worker, --master
【uwsgi|uwsgi 注意事项】=============
参考链接: https://uwsgi-docs-zh.readthe...

    推荐阅读