我们正在开发一个烧瓶应用程序,但在试图配置服务器4个小时之后,我无法理解它。
事情是这样:
我想通过XX.XX:81/ws访问这个应用程序
这就是我对nginx做的事:
location = /var/hg/repositories/data { rewrite ^ /var/hg/repositories/data/; }
location /ws { try_files $uri @ws; }
location @ws {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /var/hg/repositories/data;
uwsgi_modifier1 30;
uwsgi_pass unix:/tmp/uwsgi.sock;
}我有一份yaml文件去吃午饭
uwsgi:
socket: 127.0.0.1:9090
master: 1
workers: 1
chmod-socket: 666
auto-procname: 1
python-path: .
pidfile: /tmp/uwsgi.pid
daemonize: /var/log/uwsgi.log
module: test:app去xx.xx:81给我带来了经典的欢迎信息。
去XX.XX:81/ws给我404。
我做错了什么?
在conf更新后,我
location = /var/hg/repositories/data/ location /var/hg/repositories/data/ { try\_files $uri @web } location @ws { uwsgi\_pass unix:/tmp/uwsgi.sock; }
我的uwsgi公司:
uwsgi:
socket: unix:/tmp/uwsgi.lock
master: 1
workers: 1
chmod-socket: 666
auto-procname: 1
pidfile: /tmp/uwsgi.pid
deamonize: /var/log/uwsgi.log
manage-script-name: true
mount: /ws=/var/hg/repositories/data/test.py
callable: app发布于 2012-11-24 17:07:00
您必须在uWSGI中“挂载”应用程序,目前您已将其“挂载”为空SCRIPT_NAME。
安装: /ws=test.py
可调用: app
(删除“模块”指令)就能做到这一点。
我建议您避免使用nginx管理SCRIPT_NAME,因为它在这方面并不太聪明,而使用modifier1 30确实是一种丑陋的攻击。
只需从nginx中同时删除uwsgi_param和uwsgi_modifier1,并添加manage name: true to uWSGI即可。
https://stackoverflow.com/questions/13542894
复制相似问题