Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了当运行nginx + python flask + python-daemon:upstream发送不支持的FastCGI协议版本91大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用Python Flask通过FCGI和Nginx运行Python for web。 我的fcgi后端是这样设置的:

#!/usr/bin/env python import argparse,daemon,os from flup.server.fcgi import WSGIServer from fwd_msg import app SOCKET_LOCATION = '/tmp/fingerprinter-fcgi.sock' if __name__ == '__main__': # arg parse (and daemonizE) arg_parser = argparse.ArgumentParser() arg_parser.add_argument('--daemon',action='store_true',default=false,Help='Run as daemon') arg_parser.add_argument('--cwd',action='store',default='/',Help='Full path of the working directory to which the process should change on daemon start.') arg_parser.add_argument('--uid',type=int,default=os.getuid(),Help='The user ID ("UID") value and group ID ("GID") value to switch the process to on daemon start.') args = vars(arg_parser.parse_args()) if args['daemon']: context = daemon.DaemonContext(working_directory=args['cwd'],uid=args['uid']) with context: WSGIServer(app,bindAddress=SOCKET_LOCATION).run() else: WSGIServer(app,bindAddress=SOCKET_LOCATION).run()

如果我没有守护进程参数运行WSGIServer,它工作正常。

但是,如果我使用守护进程运行它,我在Nginx日志中得到这个错误,而对服务器的任何请求都以“502 BAD GATEWAY”结束:

2012/05/09 12:16:00 [error] 30895#0: *30 upstream sent unsupported FastCGI protocol version: 91 while reading response header from upstream,client: XXX.XXX.XXX.XXX,server: localhost,request: "POST / http/1.1",upstream: "fastcgi://unix:/tmp/fingerprinter-fcgi.sock:",host: "XXX.XXX.XXX.XXX"

任何想法为什么会发生这种情况,以及如何防止它?

调用守护进程()和调用fork(),setsid(),fork()等有什么区别?

脚本没有在启动 – 停止守护进程启动时启动

在Linux上运行一个.NET Core守护进程

从Java程序打开浏览器窗口

为什么我的Erlang引导脚本从控制台工作,但从init系统(sysvinit,upstart,systemd)运行时不起作用?

如何用.Net Core写一个linux守护进程

@H_999_0@mac OSX上的XAMPP:为什么要作为守护进程运行?

closuresPython守护进程时运行代码

使用Cygwin或MinGW可以将Linux守护进程移植到Windows吗?

RedHat守护进程函数用法

事实证明,DaemonContext关闭了所有打开的文件描述符,所以基本上应该有一个函数,实例化WSGIserver,以及应用程序和所有可以在DaemonContext中打开文件描述符的东西。

还要确保工作目录是用户拥有的,或者至少具有允许具有给定UID的用户在那里写入(不推荐)的权限。

例:

#!/usr/bin/env python import argparse,os from flup.server.fcgi import WSGIserver from fwd_msg import app SOCKET_LOCATION = '/tmp/fingerprinter-fcgi.sock' def main(): app = flask.Flask(__name__) @app.route('/',methods=['GET']) def index(): pass # your actions here if __name__ == '__main__': # arg parse (and daemonizE) arg_parser = argparse.ArgumentParser() arg_parser.add_argument('--daemon',uid=args['uid']) with context: main() else: main()

大佬总结

以上是大佬教程为你收集整理的当运行nginx + python flask + python-daemon:upstream发送不支持的FastCGI协议版本91全部内容,希望文章能够帮你解决当运行nginx + python flask + python-daemon:upstream发送不支持的FastCGI协议版本91所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: