Форум сайта python.su
Доброго дня.
Провожу перемещение проекта Flask на рабочий сервер nginx+uswgi.
Маршрутизация работает. При вызове render_template получаю 500 ошибку.
Вот мой конфиг uwsgi
[uwsgi] plugins = python,http socket = /var/www/mymobile/tmp/mymobile.sock virtualenv = /var/www/mymobile/virtualenv/ pythonpath = /var/www/mymobile/app/ module = app:app processes = 4 threads = 2 stats = 127.0.0.1:9191
Офлайн
Где конфиг nginx?
Почему именно при render_template, как вы это выяснили?
Правильно ли прописанны пути и права на них?
Какие права на /var/www/mymobile/tmp/mymobile.sock?
Проверьте настройки nginx на придмет логов - он _должен_ писать почему именно (и от кого) вам прилетает 500
Офлайн
Похоже, что UWSGI не понимает некоторые установки. Об этом явно не говорит.
К примеру: изменить файл логов не получилось.
NGINX
Config:
upstream mymobile_serv { server unix:/var/www/mymobile/tmp/mymobile.sock; } server { listen 80; server_name mymobile.local; access_log /var/www/mymobile/logs/nginx-access.log; error_log /var/www/mymobile/logs/nginx-error.log warn; location / { uwsgi_pass mymobile_serv; include uwsgi_params; } location /static/ { root /var/www/mymobile/app/static/; } }
[uwsgi] base = /var/www/mymobile/ plugins = python logto = %(base)logs/uwsgi.log socket = %(base)tmp/mymobile.sock virtualenv = %(base)virtualenv/ pythonpath = %(base)app/ module = app:app uid = viktor gid = viktor
Офлайн
Может быть попробывать Gunicorn.
Или мне это не поможет? :)
Офлайн
у вас странный конфиг:
/nginx/sites-enabled/my_site.conf:
server { listen 80; root /path/to/my_app; location / { try_files $uri @uwsgi; } location @uwsgi { include uwsgi_params; uwsgi_pass unix:/var/run/my_app.sock; } }
[uwsgi] no-orphans = true vacuum = true master = true processes = 4 chmod-socket = 664 chown-socket = www-data:www-data socket = /var/run/my_app.sock py-autoreload = 1 virtualenv = /path/to/env chdir = /path/to/app module = app callable = app
Офлайн
Похоже это неправильно настроен фласк.
Работает:
@app.route("/upload", methods=["GET", "POST"]) def upload(): return 'upload page' return render_template('upload.html')
@app.route("/upload", methods=["GET", "POST"]) def upload(): return render_template('upload.html')
Офлайн
Проблема была простой.
Не работал как следует debug режим…
... app.config['ASSETS_DEBUG'] = True app.debug = True if __name__ == "__main__":
Офлайн