Nginx, как frontend для нескольких серверов

Nginx – это легкий и быстрый сервер HTTP-сервер, а так же обратный прокси-сервер и почтовый прокси-сервер.
Он гораздо меньше нагружает систему, чем Apache, а так же позволяет проксировать через себя других Web сервера.

Для чего он может быть полезен?
В качестве кэширующего сервера для других Web серверов.
Для агреггации нескольких серверов на одном доменном имени (в зависимости от адреса перехода).

Рассмотрим конфигурацию, когда у нас есть основной сайт на Web сервере Apache, а так же вторичный сервер на базе IIS, на котором работает Web интерфейс Outlook (OWA).

Принципиальная схема сети


Основной веб-сервер должен быть доступен по адресу http://сайт/
Web интерфейс Outlook должен быть доступен по адресу: http://сайт/owa/

для этого установим на front-end сервер Nginx:

apt-get install nginx

Откроем файл конфигурации по умолчанию /etc/nginx/sites-available/default
Закомментируем (или удалим) все присутствующие строки и добавим следующую конфигурацию:

server {
listen *:80;
server_name example.com;
access_log /var/log/nginx/access.log;

location / {
proxy_pass http://10.10.10.2:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}

location /owa/ {
proxy_pass http://10.10.10.3:80/owa/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
}

Теперь объясним некоторые параметры:
listen *:80; – адрес, на котором работает Nginx (любой IP, порт 80).

server_name example.com; – имя сервера (example.com).

access_log /var/log/nginx/access.log; – путь, куда пишутся логи (/var/log/nginx/access.log).

location / – корень сайта (будет браться с Apache сервера).

proxy_pass http://10.10.10.2:8080/; адрес и порт, на котором работает Apache (http://10.10.10.2:8080/).

proxy_set_header Host $host; – передаем имя хоста.

proxy_set_header X-Real-IP $remote_addr; – передаем IP адрес запрашивающего в заголовке X-Real-IP (иначе в логах Apache будут адреса Nginx сервера, а не реальных клиентов).

proxy_set_header X-Forwarded-For $remote_addr; – передаем IP адрес запрашивающего в заголовке X-Forwarded-For (иначе в логах Apache будут адреса Nginx сервера, а не реальных клиентов).

proxy_connect_timeout 120; – время таймаута для подключения к проксируемому серверу (120 секунд).

proxy_send_timeout 120; – время таймаута для отправки данных на проксируемый сервер (120 секунд).

proxy_read_timeout 180; – время таймаута для чтения ответа от проксируемого сервера (180 секунд).

location /owa/ – путь http://сайт/owa/, далее в нем по аналогии описываются параметры.

Сохраняем конфигурацию и перезапускаем Nginx:

service nginx restart

Все готово. Теперь по основному адресу доступен Apache сервер, а по адресу /owa/ доступен web интерфейс Outlook.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.

Please Login to Comment.