Skip to content


Nginx Apache не для всех доменов

Меня часто спрашивают, как настроить связку Nginx+Apache на хостинге с несколькими виртуальными доменами, причем так, чтобы nginx, как обратный прокси (reverse proxy), работал не для всех доменов?

Ответ: это невозможно.

Основная идея обратного проксирования в том, что Nginx вешается на 80й порт и принимает на себя все http запросы к серверу, перенаправляя их на бэкенды, которые могут находиться где угодно, хоть на той же машине (но на другом порту), хоть где-нибудь еще (читай: на других серверах)

Поскольку Nginx и Apache не могут висеть на одном и том же восьмидесятом порту, ответ: “невозможно”.

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

Все просто, к сожалению в официальной документации этот вопрос не очень прозрачно описан, поэтому рассказываю:

Для всего количества виртуальных серверов, описанных в конфиге Apache, мы делаем аналогичные записи в конфиге nginx.

Выглядит это так:

В апачевском http.conf


Port 8080

DocumentRoot /data/www/host1/html
ServerName host1


DocumentRoot /data/www/host2/html
ServerName host2


А в nginx.conf пишем


##host1
server {
listen 80;
server_name host1;
...
location ~* ^.+\.(js|gif|jpg)$ {
root /data/www/host1/html;
}
}
##host2
server {
listen 80;
server_name host2;
...
location ~* ^.+\.(js|gif|jpg)$ {
root /data/www/host2/html;
}
}

Вот собственно и все. При этом, вы можете обращаться и напрямую к виртуальным хостам апача (если порт 8080 не закрыт фаирволом) например так: http://host1:8080/

Продвинутые админы, могут написать скрипт малой автоматизации :-) для добавления, удаления виртуальных хостов. Это задание на дом.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

В рубрике High Load, Обо всем. Тэги , , .

Меня читают

  • Секс в "Артеке" (ФОТО)
  • как безопасно платить карточкой через интернет
  • hdgr7s
  • blog comment powered by disqus intext:метки
  • avast staffcop
  • Один комментарий

    Будь всегда в теме, подпишись на RSS ленту комментов.

    1. Intacle написал

      Что ж, будем надеятся это не последний ваш пост.

    Можно чутка HTML

    (обязателен)

    (обязателен, показан не будет)

    или, ответьте через трекбек.