Apache + nginx - что это дает? (на практике)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Fkabir
Сообщения: 369

Apache + nginx - что это дает?

Сообщение Fkabir »

Обычно юзаю только apache, но прочитал недавно, что в связке apache + nginx, когда nginx отдает картинки и mp3, avi, а все остальное переводится на апач, здорово возрастает производительность сервера. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку.

Так вот, вопросы:

1. Действительно ли возрастает производительность на практике (экономится память, проц)?

2. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку - неудобно. Особенно если куча больших сайтов, у которых картинки раскиданы по разным папкам. Причем картинки могут быть с одинаковыми именами файлов. Как тогда быть? Можно ли как-то сделать, чтобы nginx просто отдавал картинки, все равно где они лежат? Если можно, то как? И будет ли тогда производительность nginx сильно отличаться от производительности апача?:)

3. Безопасна ли такая связка, когда апач слушает 127.0.0.1:8080, а на 80 порту работает nginx?

Спасибо за ответы.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache + nginx - что это дает?

Сообщение sash-kan »

Fkabir писал(а):
29.07.2010 20:26
1. Действительно ли возрастает производительность на практике (экономится память, проц)?
да, немножко.
Fkabir писал(а):
29.07.2010 20:26
2. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку
зачем?
Fkabir писал(а):
29.07.2010 20:26
3. Безопасна ли такая связка, когда апач слушает 127.0.0.1:8080, а на 80 порту работает nginx?
интересный вопрос. а в чём, по-вашему, может выражаться опасность такой связки?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Fkabir
Сообщения: 369

Re: Apache + nginx - что это дает?

Сообщение Fkabir »

sash-kan писал(а):
29.07.2010 21:10
Fkabir писал(а):
29.07.2010 20:26
1. Действительно ли возрастает производительность на практике (экономится память, проц)?
да, немножко.
Fkabir писал(а):
29.07.2010 20:26
2. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку
зачем?
Fkabir писал(а):
29.07.2010 20:26
3. Безопасна ли такая связка, когда апач слушает 127.0.0.1:8080, а на 80 порту работает nginx?
интересный вопрос. а в чём, по-вашему, может выражаться опасность такой связки?

1. Значит "немножко"? :laugh:

2. Насчет 1 папки - так я читал, так было написано в примере конфига, не знаю зачем именно в одной, но там говорится, если положить в другую, картинка просто не загрузится. Потому я и задаю вопрос - см мой вопрос №2. А вы предлагаете мне ответить на мой вопрос, оригинально :laugh:

3. Насчет опасности - снова-таки я задаю вопрос, спрашиваю у тех, кто пользует связку и разбирается в этом деле, а вы снова мой вопрос переадресуете мне. Вы не из Одессы часом? :laugh:
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache + nginx - что это дает?

Сообщение sash-kan »

Fkabir писал(а):
30.07.2010 00:29
если положить в другую, картинка просто не загрузится
видимо, так у них хитро настроено в том примере. возьмите другой пример, попроще.
Fkabir писал(а):
30.07.2010 00:29
спрашиваю у тех, кто пользует связку
тот, кто считает такую связку небезопасной, просто её не использует. я лично о таких случаях (неиспользования по причине небезопасности) не слыхал.
Fkabir писал(а):
30.07.2010 00:29
Вы не из Одессы часом?
как говорят в одэссе, таки да, одэссит — это не национальность, одэссит — это состояние души.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Fkabir
Сообщения: 369

Re: Apache + nginx - что это дает?

Сообщение Fkabir »

Ясно, значит все достаточно безопасно, спасибо за ответ.

видимо, так у них хитро настроено в том примере. возьмите другой пример, попроще.

Ну вот, например, так же сделано:
http://notes.ghost.dn.ua/node/23
# Статику перечисленных типов отдаём непосредственно
location ~* \.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
root /usr/share/drupal6;
access_log off;
expires 30d;
}

Я так понимаю, что статику надо заливать в /usr/share/drupal6, верно?
А если это большой сайт с каталогами и подкаталогами, где куча файлов с картинками, как тогда?
Ставить в root корень для всего сайта? И по подпапкам от корня nginx сам найдет картинки? Или он по подпапкам не ищет, только все в одной папке (в примере это /usr/share/drupal6)?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Apache + nginx - что это дает?

Сообщение KiWi »

Fkabir писал(а):
30.07.2010 01:59
видимо, так у них хитро настроено в том примере. возьмите другой пример, попроще.

Ну вот, например, так же сделано:
http://notes.ghost.dn.ua/node/23
# Статику перечисленных типов отдаём непосредственно
location ~* \.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
root /usr/share/drupal6;
access_log off;
expires 30d;
}

Я так понимаю, что статику надо заливать в /usr/share/drupal6, верно?

Абсолютный_путь_на_диске = root + абсолютный_путь_в_запросе.

Вообще, почитайте сайт Игоря Сысоева -- он на русском.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache + nginx - что это дает?

Сообщение sash-kan »

Fkabir писал(а):
30.07.2010 01:59
Я так понимаю, что статику надо заливать в /usr/share/drupal6, верно?
да, в любое место этого каталога.
Fkabir писал(а):
30.07.2010 01:59
А если это большой сайт с каталогами и подкаталогами, где куча файлов с картинками, как тогда?
как в приведённом вами примере.
Fkabir писал(а):
30.07.2010 01:59
Ставить в root корень для всего сайта?
да, root — это корень всего сайта.
Fkabir писал(а):
30.07.2010 01:59
И по подпапкам от корня nginx сам найдет картинки?
зачем ему что-то «искать»? в запросе ведь содержится строго определённый путь к файлу. и его имя.
Fkabir писал(а):
30.07.2010 01:59
Или он по подпапкам не ищет, только все в одной папке (в примере это /usr/share/drupal6)?
нет, nginx не «ищет». он возвращает то, что запрашивает клиент.

я кажется, догадываюсь, в чём у вас трудность состоит: вы, кажется, думаете, что nginx и, например, apache, как-то принципиально отличаются.
нет, принципиально они не отличаются. и тот и другой в первую очередь являются http-серверами.
да, с дополнительной функциональностью (почти идентичной, во всяком случае — весьма близкой).
можно сказать (несколько условно) и так: nginx — это «облегчённый» apache.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Fkabir
Сообщения: 369

Re: Apache + nginx - что это дает?

Сообщение Fkabir »

Ясно, спасибо, будем тестировать :)
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Apache + nginx - что это дает?

Сообщение Alex2ndr »

Вот тут почитайте - http://ospf-ripe.livejournal.com/754.html
Думаю вопрос "для чего" уйдет...
Спасибо сказали:
Аватара пользователя
psystalker
Сообщения: 27
ОС: Debian GNU/Linux

Re: Apache + nginx - что это дает?

Сообщение psystalker »

Fkabir писал(а):
29.07.2010 20:26
Обычно юзаю только apache, но прочитал недавно, что в связке apache + nginx, когда nginx отдает картинки и mp3, avi, а все остальное переводится на апач, здорово возрастает производительность сервера. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку.


ерунду вы прочитали.

1. Действительно ли возрастает производительность на практике (экономится память, проц)?


это сильно зависит от нагрузки на сервер - если речь про тысячи соединений в секунду -
производительность вырастает в разы, если речь про тысячи соединений в день - заметной разницы не будет.


2. При этом все то, что отдается через nginx (картинки, музыка и т.п.), надо скидывать в одну папку - неудобно. Особенно если куча больших сайтов, у которых картинки раскиданы по разным папкам. Причем картинки могут быть с одинаковыми именами файлов. Как тогда быть? Можно ли как-то сделать, чтобы nginx просто отдавал картинки, все равно где они лежат? Если можно, то как? И будет ли тогда производительность nginx сильно отличаться от производительности апача?:)


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

3. Безопасна ли такая связка, когда апач слушает 127.0.0.1:8080, а на 80 порту работает nginx?


не более (и не менее) чем все остальное. все что дает такая связка - для нагруженных сайтов возможность экономно отдавать статику нджинксом и экономно проксировать запросы к апачу (нджинксом можно рубить сразу "левые" запросы, который в противном случае будут грузить апач, и rewrite'ы нджинкс делает с меньшим оверхедом)

если у вас не высоконагруженный сайт - вам нджинкс скорее всего не нужен.
make love, not war; drop acid, not bombs :-)
Спасибо сказали: