prefork - имеет ли смысл nginx?

12
[Удален]
1787

Здравствуйте

на серваке апач2 собран как prefork

подскажите - имеет ли смысл ставить nginx? Для кеширования динамики

(просто я очень поверхностно в этом разбираюсь)...

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

есть ли какие-то подводные камни? (например, я так понял, что на 80 порту nginx будет жить, апача, соответственно, придется переселить - не появится ли несовместимости? Может чего еще я не знаю?)

Заранее спасибо!

skady
На сайте с 28.02.2006
Offline
71
#1

Nginx ставят не для кэширования динамики в основном. А для:

- быстрой отдачи статики

- нормирования загрузки Apache и БД соответственно

- сохранения результатов работы Апач в промежуточном буфере чтобы потом отдавать пользователю (т.е. Апач сразу освобождается как только сгенерировал содержание а не когда он его отдал)

Обмен ссылками с сайтами развлекательной тематики (сайт ЯК, DMOZ) (http://dotapick.ru/catalog/add.html)
Mihajlo
На сайте с 30.10.2006
Offline
135
#2

для кеширования динамики советую использовать Memcached. опробовано уже не на одном высоконагрузном проекте. в среднем снижает нагрузку в 5-10 раз

[Удален]
#3
skady:
Nginx ставят не для кэширования динамики в основном. А для:
- быстрой отдачи статики
- нормирования загрузки Apache и БД соответственно
- сохранения результатов работы Апач в промежуточном буфере чтобы потом отдавать пользователю (т.е. Апач сразу освобождается как только сгенерировал содержание а не когда он его отдал)

последнее я и назвал кешированием:)

вот основной вопрос у меня сейчас - не будет ли хуже, поскольку большая загрузка не всегда

не бывает ли с ним багов каких на практике?


Mihajlo

в панеле уже встроен nginx... осталость прописать некоторые конфига и запустить...

skady
На сайте с 28.02.2006
Offline
71
#4

Narodd - работает классно и быстро. Есть специфическая вещь - некоторые скрипты пытаются отдавать динамические файлы как статику (например картинки на лету генерировать с подменой адреса в htaccess). Для них надо повозиться в настройках.

Вообще Nginx стоит поставить - при большой загрузке будет полезно.

dex
На сайте с 14.04.2006
Offline
181
dex
#5
skady:

некоторые скрипты пытаются отдавать динамические файлы как статику (например картинки на лету генерировать с подменой адреса в htaccess). Для них надо повозиться в настройках.

А можно разъяснить для меня (в танке немного в этом вопросе)

У меня есть картинки и просто картинки на серваке, а есть, которые именно htacess-ом генерятся (js-ы - тоже, кстати такие есть)

Где тут засада будет, и что за настройки? nginx-а? или htacess?

в общем можно тоже самое повторить, но другими словами:) ?

губит людей вода (подпись не продаю, в долг не даю)
A4
На сайте с 09.08.2007
Offline
55
#6

nginx не умеет htaccess и синтаксис реврайта у него немного другой, соотв. придётся ручками переписывать.

Настройка nginx и сопутствующего софта на freebsd/debian. Контакт через PM.
skady
На сайте с 28.02.2006
Offline
71
#7

вот пример типовой конфигурации nginx - классная статья, сам по ней настраивал, только не на 8080 порт а на другой внутренний ip-адрес. Единственное - она немного устарела, в том же Debian Etch уже nginx есть в репозитории.

В его конфигурации файлы которые напрямую отдаются nginx, выглядят следующим образом

# Static files location

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {

root /home/mysite/html;

}

Т.е. все картинки nginx попробует отдать сам из каталога, а если они генерируются апачем и php, то ничего не получится (htaccess nginx не обрабатывает и не планирует обрабатывать). Поэтому надо постараться над фильтром, чтобы нужные динамические картинки отдавались Апачем, а статика nginx

A4
На сайте с 09.08.2007
Offline
55
#8

Проще сделать так(пример блока server для coppermine):


#####################
# foto.blablabla.ru #
#####################
server {
listen 80.86.xx.xx:80;
server_name foto.blablabla.ru www.foto.blablabla.ru;
access_log /home/users/foto.blablabla.ru/logs/access_log main;
rewrite /index-([0-9]*)\.html /index.php?cat=$1;
rewrite /index-([0-9]*)-page-([0-9]*)\.html /index.php?cat=$1&page=$2;
rewrite /thumbnails-([a-z0-9]*)-([\-]?[0-9]*)\.html /thumbnails.php?album=$1&cat=$2;
rewrite /thumbnails-([a-z0-9]*)-page-([0-9]*)\.html /thumbnails.php?album=$1&page=$2;
rewrite /thumbnails-([a-z0-9]*)-([\-]?[0-9]*)-page-([0-9]*)\.html /thumbnails.php?album=$1&cat=$2&page=$3;
rewrite /thumbnails-([0-9a-z]*)\.html /thumbnails.php?album=$1;
rewrite /thumbnails-search-(.*)\.html /thumbnails.php?album=search&search=$1;
rewrite /displayimage-([a-z0-9]+)-([\-]?[0-9]+)-([\-]?[0-9]+)\.html /displayimage.php?album=$1&cat=$2&pos=$3;
rewrite /displayimage-([a-z0-9]+)-([\-]?[0-9]+)\.html /displayimage.php?album=$1&pos=$2;
rewrite /displayimage-([0-9]+)\.html /displayimage.php?pos=-$1;
rewrite /slideshow-([0-9]+)-([\-]?[0-9]+)-([0-9]+)\.html /displayimage.php?album=$1&pid=$2&slideshow=$3;
rewrite /slideshow-([a-z]+)-([\-]?[0-9]+)-([0-9]+)-([0-9]+)\.html /displayimage.php?album=$1&cat=$2&pid=$3&slideshow=$4;

location / {
root /home/users/foto.blablabla.ru/htdocs;
index index.html index.htm index.php;
}
location ~ \.php$ {
fastcgi_intercept_errors on;
fastcgi_pass unix:/tmp/php-local-fcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/users/foto.blablabla.ru/htdocs$fastcgi_script_name;
include fastcgi;
}
}

dex
На сайте с 14.04.2006
Offline
181
dex
#9

Всем спасибо большое

понял, что это не для меня:(

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

все не реально выловить будет....

наверное, когда совсем припрет вынесу известный генератор нагрузки отдельно и уже с ним придется возиться...

зы - Alexei42 - Настройка nginx и сопутствующего софта на freebsd/debian

как раз-таки дебиан и есть;)

Andreyka
На сайте с 19.02.2005
Offline
822
#10

nginx можно поставить как аксселлератор

Не стоит плодить сущности без необходимости
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий