Правильно выступающий манифест. json через Django Gunicorn - PullRequest
1 голос
/ 04 марта 2020

У меня есть Django веб-приложение, которое использует nginx обратный прокси-сервер с сервером приложений gunicorn (upstream).

Мои nginx журналы заполняются такими ошибками: 2020/03/03 22:51:57 [error] 9605#9605: *162393 upstream sent too big header while reading response header from upstream, client: 168.155.46.104, server: example.com, request: "GET /static/img/favicons/manifest.json HTTP/2.0", upstream: "http://unix:/home/ubuntu/app/myproj/gunicorn.sock:/static/img/favicons/manifest.json", host: "example.com", referrer: "https://example.com/signup/create-pass/new/6d756265726e2d3131/18/"

Я полагаю, что Gunicorn не мог служить manifest.json.

Этого не должно было быть. Я создал manifest.json и поместил его в соответствующее место. Использование проверки Favicon на https://realfavicongenerator.net/ показывает мне эту ошибку: The Web App Manifest at https://example/com/static/img/favicons/site.webmanifest cannot be downloaded. Если я попаду по этому URL-адресу прямо в браузере, я получу ошибку 502 Bad Gateway.

Как я могу это исправить?

1 Ответ

0 голосов
/ 05 марта 2020

Я разобрался с ошибкой.

Файлы, помещенные в папку /static/ в моем проекте, должны обслуживаться напрямую через nginx. Но файл json, о котором идет речь, не был включен в nginx conf способом, позволяющим обслуживать его веб-сервером.

Как только я исправил это (см. Ниже), файл манифеста был напрямую обработан nginx (а gunicorn никогда не входил в l oop). Проблема решена!


Это то, что я добавил к файлу виртуального хоста nginx для решения проблемы: обратите внимание, что это расширение json:

location ~* \.(?:ico|css|js|gif|jpg|jpeg|png|svg|woff|ttf|eot|json)$ {

    root /home/ubuntu/app/my_proj;
    expires 120d;
    access_log off;
    error_log off;
}
...