[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nginx и post-запросы



Dmitry E. Oboukhov <unera@debian.org> wrote:
> [-- text/plain, кодировка quoted-printable, кодировка: utf-8, 188 строк --]

> >> нечто вроде того что делаем POST http://url/имя.файла.txt, а на деле
> >> вызывается CGI который отдает содержимое файла. Эта фигня используется
> >> чтобы "обмануть" старые браузеры и заставить их скачивать корректные
> >> имена файлов.
> AM> Эээ, может правильней писать - корявые скрипты, авторы которых не асилили
> AM> правильно выдать имя файла? Или у вас документально завялена поддержка
> AM> Misaic и HTTP/0.9 до скончания веков задарма?

> есть проблема в IE версии 6. на нем еще сколько-то корпоративных
> клиентов сидит а у него с русскими символами в имени файла еще туго.
> вот пока этот хак и вертится... местами. 
Это проблема клиентов. Есть куча вменяемых браузеров, а не это
неподдерживаемое M$ решето с кучкой кривых эктив-иксов. 

> но вопрос собственно не об этом

> >> так вот, location'ов на все такие места прописывать слишком много
> >> (надо разгребать что там пользователи в подкаталогах с .htaccess
> >> намутили), а можно ли nginx заставить всегда проксировать POST-запросы?
> AM> Заставить то можно, только внимание вопрос - а нафига в этой схеме nginx?
> AM> Нонче круто всё делать чрез nginx?

> статика там - 2/3 нагрузки. соответственно nginx ее берет на себя, а
> динамику на бакенде апач...
Вынести статику на отдельный домен, и отдавать её nginx'ом. 

> я пока извернулся следующим образом:

> location / {
>     root /path/to;
>     try_files $uri @post;
> }

> location @post {
>     proxy_pass http://localhost:80;
>     proxy_set_header  Host   $host;
>     proxy_set_header   X-Real-IP  $remote_addr;
> }

> но для этого пришлось слезть с стейбла в тестинг, ибо стейбловский
> nginx try_files еще не поддерживал, но... не очень нравится мне это
ой, шо ви говорите. У нас stable == "протухло до момента релиза stable".
Можно было и не слезать в тестиг - просто пересобрать пакет для lenny, благо
развесистых зависиомстей оно не тянет. Так-же, можно еще обнаружить, что
libapache2-mod-rpaf у нас, ээээ, даже не третей, пятой свежести.

> AM> PS: Предвидя праведные вопли "если вам нефиг сказать - чо лезем",

> я сам очень люблю влезть в таком стиле, так что спокойно отношусь к
> аналогичным влазиньям :)
> если бы на письмо никто не ответил совсем было бы грусно :)

> AM> отвечаю -
> AM> если бы чукча умел читать документацию и не был бы забанен на гугле - то найти
> AM> кусок конфига с использованием try_files (http://forum.nginx.org/read.php?2,4893,4924)
> AM> смог бы сам, но - увы.

> да, это-то я сразу нашел. но тут не очень хорошо что получается все
> что он не найдет пройдет через бакенд. а это нехорошо. большинство
> запросов - GET. если бы была возможность форварднуть только POST, то
> все (большинство) 404/403 что возможны остались бы на nginx
Ну ведь чукча не читатель, да? Если бы чукча был читатаель, он бы заметил,
что POST в статику вызывает 405 ошибку, которую через error_page 405 можно
куда засунуть? Правильно - в именованый location с набором proxy_pass & co.


> AM> PPS: Да, идея отдавать через cgi то, что можно отдать nginx'ом через
> AM> X-Accel-Redirect - ущербна еще более... Впрочем - поддержка cgi в наше вермя
> AM> вобще смахивает на бред сумашедшего.

> cgi там вещь историческая, а X-Accel-Redirect не подходит, там файло
Историческим вещам место в музее...


Reply to: