LINUX.ORG.RU
ФорумAdmin

Кэширование(?) nginx + uwsgi

 ,


0

1

Есть такая вот связка. Допустим, на ней висит имиджборда. Есть такая проблема: когда я в треде пишу ответ и после этого редирекчу на тот же тред, он в 1 из 3 случаев отображается без этого ответа. И только через 1-2 обновления страницы через ф5 появляется этот уже сохраненный ответ. В location / (где настроен uwsgi_pass) ничего насчет кэшей нет.

Кто может быть виноват в том, что ответ не обновляется?

★★★★★

Посмотри в браузере заголовки респонса. Найдёшь что-нибудь подозрительное — выясняй, кто это делает :)

Apple-ch ★★
()
Ответ на: комментарий от Apple-ch

Что именно подозрительное? Я раньше с этим не работал, не знаю «нормального» респонса.

vurdalak ★★★★★
() автор топика

Может быть поможет тот факт, что при настройке связки django-nginx через fcgi такой проблемы не было.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от zz

Хм. По какой-то причине POST возвращает 302 NOT FOUND, но потом все же редиректит как положено на GET (т.е. метод view в джанге отрабатывает как надо и сохраняет результат POST-а), но при этом показывает старую страницу без нужного результата.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Т.к. ни логов, ни конфигов нет то сложно помочь чем-то конкретным.

Vanga-mode: виновата во всём джанга которая выдаёт 302.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Vanga-mode: виновата во всём джанга которая выдаёт 302.

Так а что не так? После 302 браузер же все равно лезет на GET и получает страничку с ответом 200. Плюс на fastcgi работало как надо вроде.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Не понял. Куда именно смотреть?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Что у меня в конфиге nginx я указал.

«Указал» это прислал конфиг.

Response Headers 9653ms

это нормально?

Куда именно смотреть?

На то что прилетает по wsgi. Я вот вижу chunked-encoding, но разве wsgi поддерживает это? http://stackoverflow.com/questions/12091067/handling-http-chunked-encoding-wi...

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

это нормально?

Да, это проблема оптимизации.

Я вот вижу chunked-encoding, но разве wsgi поддерживает это?

А кто указывает chunked? nginx?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от true_admin

«Указал» это прислал конфиг.

Это и есть весь конфиг.

location / {
                include                 uwsgi_params;
                uwsgi_pass              unix:/tmp/uwsgi.sock;
        }

Есть еще 2 алиаса для статических файлов (картинки), но это к wsgi не относится.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Странно. В интернетах по этому поводу ничего не нахожу. В доках джанги ничего не сказано про chunked encoding. У nginx есть такой параметр, включение его ничего не меняет.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от zz

Если оно не успевает писать? То почему ответ выдается? Оно ведь не должно отвечать, пока не обработана операция сохранения.

База мускуль.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

У вас время генерации ответа 9секунд, вы думаете wsgi даст видимое ускорение? Я понимаю если бы речь шла хотя бы 300 запросах в секунду...

true_admin ★★★★★
()
Ответ на: комментарий от zz

Теперь я и правда склоняюсь к проблеме с БД. Недавно я много настроек там поменял (только размеры кэшей, правда), поэтому это тоже могло послужить причиной. Но все равно неясно, как такое возможно.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от zz

uwsgi держит 5 процессов, у всех свои коннекты.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Проверил тулбаром. Есть интересные моменты и способы оптимизации, но насчет content-encoding ничего.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Он уже дал небольшое ускорение

это самовнушение :)

но насчет content-encoding ничего.

Покажи код view который отдаёт неправильный контент. Можно частично.

true_admin ★★★★★
()
Ответ на: комментарий от vurdalak

И лор мне снится, ага.

Что показали замеры до и после миграции? Ну или хотя бы сколько у вас запросов в секунду?

По коду. Не вижу криминала. По-моему, должно просто работать. Как wsgi настроен? В смысле, покажи конфиг.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin
[uwsgi]
processes = 4
master = true
max-requests = 5000
vacuum = true

env = DJANGO_SETTINGS_MODULE=neboard.settings
module = django.core.handlers.wsgi:WSGIHandler()
chdir = /var/www/neboard
socket = /tmp/uwsgi.sock

Что показали замеры до и после миграции?

Глаз — алмаз!

vurdalak ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.