我似乎无法让我的应用程序在uWsgi上正常运行.我通过从命令行运行uWsgi将Nginx从等式中取出,它表现出与在Nginx上运行时完全相同的行为.
uwsgi -s 0.0.0.0:5050 -w app:app --uid www-data --gid www-data --protocol=http
uwsgi按如下方式处理请求:
[pid:0625|app: 0|req: 1/1] 192.168.1.219 () {34 vars in 737 bytes} [Tue Mar 31 11:10:30 2015] GET /admin => generated 233 bytes in 25 msecs (HTTP/1.1 404) 3 headers in 249 bytes (1 switches on core 0)
我的文件结构如下
/srv/www/cc/app/ static/ templates/ __init__.py views.py models.py forms.py
根据新的证据,它可能是我的应用程序,这是我的init.py文件:
import os from flask import Flask from flask.ext.sqlalchemy import sqlAlchemy from flask.ext.script import Manager from flask.ext.migrate import Migrate,MigrateCommand app = Flask(__name__) app.config.from_object('config') db = sqlAlchemy(app) migrate = Migrate(app,db) manager = Manager(app) manager.add_command('db',MigrateCommand) from flask.ext.mail import Mail mail = Mail(app) from app import models,forms #setup flask-security from flask.ext.security import Security,sqlAlchemyUserDatastore user_datastore = sqlAlchemyUserDatastore(db,models.User,models.Role) security = Security(app,user_datastore,confirm_register_form = forms.ExtendedConfirmRegisterForm ) from app import views
链接到我的整个views.py:http://pastebin.com/0jMTarEe
我有这个相同的应用程序,在开发早期的方式,在我有一个不同的Nginx uwsgi服务器上运行,并且已经完全复制了他们的配置文件,但无济于事.我真的不知道为什么这不起作用.但根据Flask文档,以上是我应该需要的.
对于咯咯笑声,我继续将uwsgi从等式中移除.在cc文件夹中创建了一个run.py文件… python run.py:
from app import app app.run('0.0.0.0',port=5050,debug=True)
请求:
* Running on http://0.0.0.0:5050/ * Restarting with reloader 192.168.1.219 - - [31/Mar/2015 11:56:24] "GET / HTTP/1.1" 404 -
所以它似乎是我的应用程序的问题,而不是任何关于Nginx或uwsgi的问题.我在任何地方都没有收到任何错误……可能会出错?
编辑
通过评论中的建议进行了更多挖掘.我编辑了init.py的底部:
import . import views print views print app.url_map
这是我启动服务器时的输出:
* Running on http://0.0.0.0:5050/ * Restarting with reloader <module 'app.views' from '/srv/www/cc/app/views.py'> Map([<Rule '/' (HEAD,POST,OPTIONS,GET) -> index>,<Rule '/admin/' (HEAD,GET) -> admin>,<Rule '/test/' (HEAD,GET) -> test> ... Lots more ... ])