Я настроил приложение nginx + uwsgi + flask, и оно работает как чудо, но если я загружаю страницу и загружаю другую страницу (или ту же страницу) через 1 минуту, uwsgi возвращает 500 внутреннюю ошибку сервера без какой-либо информации в журналах и если я загружаю страницу, она работает нормально.

Я заметил, что это происходит только в том случае, если запрос привязан к тому же pid последнего процесса.

Это то, что я использую для запуска uwsgi:

HOSTPATH=/var/www/vhosts/example.com

uwsgi -H $HOSTPATH/httpdocs/venv -x $HOSTPATH/httpdocs/uwsgi.xml -M 4 -t 30 -A 4 -p 4  --pidfile /var/run/uwsgi.pid -d /var/log/uwsgi.log --harakiri-verbose --enable-threads --log-5xx --no-orphans

Мой uwsgi.xml:

<uwsgi>
  <socket>127.0.0.1:3031</socket>
  <chdir>/var/www/vhosts/example.com/httpdocs/app</chdir>
  <pythonpath>..</pythonpath>
  <module>wsgi:app</module>
  <master>True</master>
</uwsgi>

И мой nginx conf:

server {
    listen 80;
    listen xx.xxx.xxx.xx:80 default_server;

    server_name example.com;
    client_max_body_size 128m;

    location / {
        include         uwsgi_params;
        uwsgi_pass      127.0.0.1:3031;
        proxy_set_header X-Accel-Internal /static;
    }


    location /static {
        alias      /var/www/vhosts/example.com/httpdocs/app/project/static/;
    }
}

Есть идеи о том, что это может быть?

0
xsquirrel 28 Янв 2013 в 20:40

2 ответа

Лучший ответ

Я установил NewRelic и выяснил, ошибки были тайм-ауты MySQL.

0
xsquirrel 18 Фев 2013 в 11:50

Вы уверены, что uWSGI возвращает 500 и не делает это nginx? Можете ли вы включить отладку фляги?

Вы проверили эту страницу: http://uwsgi-docs.readthedocs.org/en /latest/ThingsToKnow.html

Просто для любопытства, есть ли какая-то конкретная причина смешивать конфигурацию xml с аргументами командной строки?

0
roberto 28 Янв 2013 в 19:07