如何解决当我通过 FCGI 运行 Flask 时的循环重定向
我尝试在 MacOS 上运行现有应用。它使用 fcgi 像这样运行服务器:
app = Flask(__name__)
# ...
# many different staff here
# ...
settings = {
'bindAddress': ('localhost',8082),'umask': 0
}
WSGIServer(app,**settings).run()
我使用 nginx 在 3000 端口上运行它。这是我的简单配置:
server {
server_name localhost;
listen 3000;
location / {
include fastcgi_params;
fastcgi_pass localhost:8082;
}
}
当我运行它时,我得到了无尽的循环重定向。来自我的终端的日志:
2021-03-20 22:21:50,483 - DEBUG - d7c39b9f-2c3a-4f02-9705-77b80d07f5f8 - OUT: 308 PERMANENT REDIRECT <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="http://localhost:3000/">http://localhost:3000/</a>. If not click the link.
我在 werkzeug 中发现了这条消息并得到了这次调用的回溯:
2021-03-20 22:21:50,482 - DEBUG - d7c39b9f-2c3a-4f02-9705-77b80d07f5f8 - SID ed6d3b08-d474-45c8-8416-31a10f3d5d41 User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_2) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/89.0.4389.90 Safari/537.36 IN [GET]: http://localhost:3000/
File "/Users/myuser/.pyenv/versions/3.9.1/lib/python3.9/threading.py",line 912,in _bootstrap
self._bootstrap_inner()
File "/Users/myuser/.pyenv/versions/3.9.1/lib/python3.9/threading.py",line 954,in _bootstrap_inner
self.run()
File "/Users/myuser/.pyenv/versions/3.9.1/lib/python3.9/threading.py",line 892,in run
self._target(*self._args,**self._kwargs)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/threadpool.py",line 135,in _worker
job.run()
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 671,in run
self.process_input()
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 707,in process_input
self._do_params(rec)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 807,in _do_params
self._start_request(req)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 791,in _start_request
req.run()
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 576,in run
protocolStatus,appStatus = self.server.handler(self)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flup/server/fcgi_base.py",line 1175,in handler
result = self.application(environ,start_response)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flask/app.py",line 2000,in __call__
return self.wsgi_app(environ,start_response)
File "/Users/myuser/Projects/myproject/smart-space/smartspace/scripts/smart_space_svc.py",line 139,in __call__
return self.app(environ,line 1988,in wsgi_app
response = self.full_dispatch_request()
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flask/app.py",line 1642,in full_dispatch_request
response = self.make_response(rv)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/flask/app.py",line 1746,in make_response
rv = self.response_class.force_type(rv,request.environ)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/werkzeug/wrappers/base_response.py",line 269,in force_type
response = BaseResponse(*_run_wsgi_app(response,environ))
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/werkzeug/test.py",line 1119,in run_wsgi_app
app_rv = app(environ,start_response)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/werkzeug/exceptions.py",line 191,in __call__
response = self.get_response(environ)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/werkzeug/routing.py",line 252,in get_response
return redirect(self.new_url,self.code)
File "/Users/myuser/Projects/myproject/venv/lib/python3.9/site-packages/werkzeug/utils.py",line 510,in redirect
traceback.print_stack()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。