乐趣区

关于python: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 <prefix>
    Could not find platform dependent libraries <exec_prefix>
    Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
    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

=============
参考链接:https://uwsgi-docs-zh.readthe…

退出移动版