我今天玩的是nginx Unit应用服务器和Python 3.只要我运行一个简单的WSGI应用程序就可以正常工作,但是当我尝试使用Flask时,我不会工作(404)...... / p>
nginx config:
upstream unit_backend {
server 127.0.0.1:8300;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name _;
location / {
}
location /unittest {
proxy_pass http://unit_backend;
proxy_set_header Host $host;
}
}
单位配置:
{
"listeners": {
"*:8300": {
"application": "test"
}
},
"applications": {
"test": {
"type": "python 3.5",
"processes": 4,
"user": "noisefloor",
"group": "noisefloor",
"path": "/home/noisefloor/code/unit_test",
"module": "wsgi"
}
},
"access_log": "/var/log/access.log"
}
wsgi.py在浏览器中打开http://127.0.0.1/unittest时有效:
from datetime import datetime
def application(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/plain; charset=utf-8')]
start_response(status, headers)
text = 'Hello World @ {}'.format(datetime.now())
return [text.encode('utf-8')]
当wsgi.py如下:
from flask import Flask
application = Flask(__name__)
@application.route('/')
def test():
return 'Hello Flask!'
它获得了404,但是我看到了在调用http://127.0.0.1:8300时我希望看到的内容 - 所以它基本上有用,它只是不知道为什么它在调用时不会工作{{3 }}
答案 0 :(得分:0)
这个问题很旧,但我认为它是一个值得回答的问题(因为如果您键入Nginx Unit,它是Google索引的第一个索引)。
由于您没有在
proxy_pass
指令中指定任何URI,因此 请求通过/unittest
URI传递到烧瓶应用程序,您 显然,除了烧瓶应用程序中没有指定任何其他途径"/"