Django и uwsgi показывают 502 на производстве только для определенных URL - PullRequest
0 голосов
/ 26 июня 2018

Я недавно обновил Django до 1.8 и Celery до 4.1.1. После обновления на сервере появляется ошибка 502 только для одного URL.

Я использую uwsgi. Вот часть кода. URL, с которым я сталкиваюсь, это judging/

urlpatterns = patterns('lbb.views',
    url(r'^judging/', include('judging.urls')),
)

urls.py в приложении для судейства

urlpatterns = patterns('judging.views',
    url(r'^$', AppView.as_view(), name='judge_home')
)

вид

class AppView(TemplateView):
    template_name = 'judging/app.html'

    def get(self, request, *args, **kwargs):
        """ method get of class JudgeLoginView """
        if not request.user.is_authenticated():
            url="%s?next=%s" % (reverse("judge_login"), '/judging/#/judge_home')
            return redirect(url)
        return super(AppView, self).get(self, request, *args, **kwargs)

Используется для нормальной работы. Но после обновления у меня возникла эта проблема. Файл nginx

upstream application {
    server lbb-app:8000;
}


server {
    listen 80 default_server;

    charset     utf-8;

    client_max_body_size 4G;   # adjust to taste
    server_tokens off;

    add_header X-Content-Type-Options nosniff;

    add_header X-XSS-Protection "1; mode=block";

    add_header Cache-Control "no-store";

    add_header Pragma "no-cache";

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";


    location /work {
        include     uwsgi_params;
        uwsgi_pass  application;
    }


    location / {
        include     uwsgi_params;
        uwsgi_pass  application;
    }
}

uwsgu.ini - это

[uwsgi]
env=DJANGO_SETTINGS_MODULE=lbb.settings.common
chdir=/opt/webapp
module=lbb.wsgi:application
reload-mercy=10
master=1
no-orphans=1
workers=4
enable-threads=1
single-interpreter=1
socket=:8000
harakiri=20
max-requests=5000
vacuum=1
buffer-size = 65535

Я сделал некоторые изменения в конфигурации nginx и развернул пару раз. Но изменили обратно на старую и перераспределили. Каждый другой URL работает нормально. Кроме того, который я упомянул https://website/judging/. Я пытался комментировать какой-то ненужный код. Но это все еще не работает.

1 Ответ

0 голосов
/ 26 июня 2018

Я думаю, что есть проблема:

urlpatterns = patterns('judging.views',
    url(r'^$', AppView.as_view(), name='judge_home')
)

Вы должны удалить знак $ или ^ из шаблона URL.

...