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

2010-12-30 Пенетрантность Dmitry E. Oboukhov
 ну сейчас она итак отдается nginx'ом с фронтенда. сервакам сильно
 полегчало.
AM Подозрительно всё это. apache отдает статику неплохо сам по себе.

плохо он отдает статику. по сравнению с nginx во всяком случае

вот домашний говносервер (P3-700) с апачем. апач на нем стоит (стоял)
года три: жена кладет в директорию фотографии (и прочий мусор) когда
хочет чтобы кто-то их скачал. воркер настроен по дефолту (на максимум
150 клиентов ЕМНИП (да много для такого, понимаю)), никаких CGI/mod_хрень
не было (не нужно ей это ничего: ей надо файл положить и дать ссылку
кому-то).

на nginx перелез когда этот сервак лег: она имела несоторожность пару
фоток какого-то нового изделия выложить на посещаемый форум:
сколько-то человек просто посмотрело страничку про вязание и не
увидело фотографию, поскольку на предыдущих человеках сервак уже
лежал.
поставил nginx не думая о тюнинге и попросил ее для теста там же
выложить еще пяток фоток. поглядел что все ок и забыл о проблеме.

а подробнее с настройкой nginx стал разбираться только сейчас :)
правда теперь опять видимо на год-два подробное разбирательство уедет:
насущную проблему решил, а пока новая не появится вроде и смысла нет
глубже разбираться. лучше вот тут пофлеймить ;)
-- 
... mpd is off

. ''`.   Dmitry E. Oboukhov
: :’  :   email: un...@debian.org jabber://un...@uvw.ru
`. `~’  GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


signature.asc
Description: Digital signature


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

2010-12-30 Пенетрантность Dmitry E. Oboukhov

 ну сейчас она итак отдается nginx'ом с фронтенда. сервакам сильно
 полегчало.
AM Подозрительно всё это. apache отдает статику неплохо сам по себе.
 плохо он отдает статику. по сравнению с nginx во всяком случае
AM Тюнить пробовалось?

если бы очевидное решение перед носом не валялось попробовалось бы.

а кстати, какие предложения в описанном ниже случае?

 вот домашний говносервер (P3-700) с апачем. апач на нем стоит (стоял)
 года три: жена кладет в директорию фотографии (и прочий мусор) когда
 хочет чтобы кто-то их скачал. воркер настроен по дефолту (на максимум
 150 клиентов ЕМНИП (да много для такого, понимаю)), никаких CGI/mod_хрень
AM 150 коннетов на воркер - это чтоб вечно текущие php скрипты всю память не
AM сожрали.

тама не было php вообще. только статика
png/avi/jpg/gif итп

 не было (не нужно ей это ничего: ей надо файл положить и дать ссылку
 кому-то).

 на nginx перелез когда этот сервак лег: она имела несоторожность пару
 фоток какого-то нового изделия выложить на посещаемый форум:
 сколько-то человек просто посмотрело страничку про вязание и не
 увидело фотографию, поскольку на предыдущих человеках сервак уже
 лежал.
AM Ну тут думать надо, прежде чем выкладывать. Для выкладки картинок в
AM нагруженые форумы есть более подходящие методы - выложить скажем в coral
AM cdn. читать - тут http://habrahabr.ru/blogs/i_recommend/82739/

 поставил nginx не думая о тюнинге и попросил ее для теста там же
 выложить еще пяток фоток. поглядел что все ок и забыл о проблеме.
AM Логично, nginx помог только тем, что у него нету модели апачи:
AM один воркер - один клиент.
AM Или ставить второй апач с thread моделью воркера или вобще какой thttpd.

а треды - те же процессы только облегченные. то бишь проблема не
решается, а ослабляется.
-- 
... mpd is off

. ''`.   Dmitry E. Oboukhov
: :’  :   email: un...@debian.org jabber://un...@uvw.ru
`. `~’  GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


signature.asc
Description: Digital signature


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

2010-12-30 Пенетрантность Dmitry E. Oboukhov

 ну сейчас она итак отдается nginx'ом с фронтенда. сервакам сильно
 полегчало.
AM Подозрительно всё это. apache отдает статику неплохо сам по себе.
 плохо он отдает статику. по сравнению с nginx во всяком случае
AM Тюнить пробовалось?

 если бы очевидное решение перед носом не валялось попробовалось бы.

 а кстати, какие предложения в описанном ниже случае?
AM Написал же внизу. thttpd + включить в нем sendfile. Или lighttpd + sendfile.

нет. ты говорил апач хорошо умеет статику, вопрос был именно в этом
контексте.

а lighttpd и thttpd это уже не потюнить апач, а заменить апач.
Соответственно я и заменил его на nginx (потому что был в тот
момент на слуху и то что требовалось от него умел.) ну и можно
конечно в табличку сравнений поглядеть и вообще выбрать какой-нидь
чероке или лайти или тхттп. но если речь уже пойдет о выборе между
ними это значит опять надо что-то в консерватории править :)

 поставил nginx не думая о тюнинге и попросил ее для теста там же
 выложить еще пяток фоток. поглядел что все ок и забыл о проблеме.
AM Логично, nginx помог только тем, что у него нету модели апачи:
AM один воркер - один клиент.
AM Или ставить второй апач с thread моделью воркера или вобще какой thttpd.

 а треды - те же процессы только облегченные. то бишь проблема не
 решается, а ослабляется.
AM Ну так и nginx с его FSM моделью - тож её ослабляет. Следующим узким местом
AM станет или канал или скорость отдачи с диска.

ну вот. а до этого узким местом была память и CPU.
смена сервера привела к тому что узкие места - канал и диск. то есть
проблема ослаблена до того что решена. диалектика. переход количества
в качество ;)

-- 
... mpd is off

. ''`.   Dmitry E. Oboukhov
: :’  :   email: un...@debian.org jabber://un...@uvw.ru
`. `~’  GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


signature.asc
Description: Digital signature


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

2010-12-29 Пенетрантность Dmitry E. Oboukhov

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

есть проблема в IE версии 6. на нем еще сколько-то корпоративных
клиентов сидит а у него с русскими символами в имени файла еще туго.
вот пока этот хак и вертится... местами. 

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

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

статика там - 2/3 нагрузки. соответственно 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 еще не поддерживал, но... не очень нравится мне это


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

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

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

да, это-то я сразу нашел. но тут не очень хорошо что получается все
что он не найдет пройдет через бакенд. а это нехорошо. большинство
запросов - GET. если бы была возможность форварднуть только POST, то
все (большинство) 404/403 что возможны остались бы на nginx


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

cgi там вещь историческая, а X-Accel-Redirect не подходит, там файло
генерится всякий раз новое. нет места где статика там лежит.
-- 
... mpd is off

. ''`.   Dmitry E. Oboukhov
: :’  :   email: un...@debian.org jabber://un...@uvw.ru
`. `~’  GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


signature.asc
Description: Digital signature


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

2010-12-29 Пенетрантность Dmitry E. Oboukhov
AM Эээ, может правильней писать - корявые скрипты, авторы которых не асилили
AM правильно выдать имя файла? Или у вас документально завялена поддержка
AM Misaic и HTTP/0.9 до скончания веков задарма?

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

клиенты приносят бабло. соответственно им можно выдать рекомендацию,
но ... не неработающий сервис :)

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

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

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

ну сейчас она итак отдается nginx'ом с фронтенда. сервакам сильно
полегчало.

 но для этого пришлось слезть с стейбла в тестинг, ибо стейбловский
 nginx try_files еще не поддерживал, но... не очень нравится мне это
AM ой, шо ви говорите. У нас stable == протухло до момента релиза stable.

AM Можно было и не слезать в тестиг - просто пересобрать пакет для lenny, благо
AM развесистых зависиомстей оно не тянет. Так-же, можно еще обнаружить, что
AM libapache2-mod-rpaf у нас, , даже не третей, пятой свежести.

ну свежесть она становится необходима только когда утыкаешься во
что-то неработающее :)

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

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

вот спасибо. я про 405 (вернее про использование для этого error_page) как-то
несообразил. можно видимо и со stable не слезать :)

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

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

не. им место там где они приносят больше бабла. а в музеях много бабла
не срубишь, да и это уже другой бизнес.
-- 
... mpd is off

. ''`.   Dmitry E. Oboukhov
: :’  :   email: un...@debian.org jabber://un...@uvw.ru
`. `~’  GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


signature.asc
Description: Digital signature