Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 16, 2013 11:24:53

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Доброго дня.

Провожу перемещение проекта 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 пустой лог - наверное где …, а лог wsgi ошибок не показывает.

Спасибо.



Офлайн

#2 Авг. 16, 2013 15:03:06

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Где конфиг nginx?
Почему именно при render_template, как вы это выяснили?
Правильно ли прописанны пути и права на них?
Какие права на /var/www/mymobile/tmp/mymobile.sock?
Проверьте настройки nginx на придмет логов - он _должен_ писать почему именно (и от кого) вам прилетает 500

Офлайн

#3 Авг. 17, 2013 07:39:01

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Похоже, что 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/;
    }
}

Error log: Empty.
Access log:
http://pastebin.com/btvcDLQD

UWSGI
Config:
[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

Log:
http://pastebin.com/QPmB1zQi


Спасибо.



Офлайн

#4 Авг. 17, 2013 07:39:56

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Может быть попробывать Gunicorn.

Или мне это не поможет? :)



Офлайн

#5 Авг. 18, 2013 18:08:51

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

у вас странный конфиг:
/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/apps-enabled/my_app.ini:
[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

Офлайн

#6 Авг. 19, 2013 08:33:18

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Похоже это неправильно настроен фласк.

Работает:

@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')



Офлайн

#7 Авг. 19, 2013 09:38:58

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Flask, Error 500, render_template, uwsgi

Проблема была простой.
Не работал как следует debug режим…

...
app.config['ASSETS_DEBUG'] = True
app.debug = True
if __name__ == "__main__":
app.config = True
app.run(debug=True)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version