Настройка Nginx как ReverseProxy на Ubuntu Server 8.04
Установка
sudo apt-get install nginx
Помнить что 80 порт может использовать только один веб сервер
Настройка
Изменим конфиг по умолчанию, добавить в строчку слово default (если не нужна страничка по умолчанию то вообще можно удалить)
sudo nano /etc/nginx/sites-available/default
default
... listen 80 default; ...
Поставим настройки прокси как рекомендуют на ubuntu community, хотя минимально достаточно
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;остальное будет по умолчанию. И также, что бы каждый раз не писать все строчки кода, просто будем подключать созданный файл.
sudo nano /etc/nginx/proxy.conf
proxy.conf
proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k;
Создание конфига для проксирования всех запросов для домена *.mydomain.ru на сервер с адресом 192.168.0.4 sudo nano /etc/nginx/sites-available/mydomain.conf
mydomain.conf
server { listen *:80; server_name .mydomain.conf; access_log /var/log/nginx/access.log; location / { proxy_pass http://192.168.0.4; include /etc/nginx/proxy.conf; } }
Добавление конфига в активные
sudo ln -s /etc/nginx/sites-available/mydomain.conf /etc/nginx/sites-enabled/mydomain
Рестарт
sudo /etc/init.d/nginx restart
mod_rpaf
Если перенаправлять запросы на сервер Apache, то в логах будут обращения только с адреса nginx'a. Что бы получить реальные IP адреса от nginx'a необходимо установить mod_rpaf
Обсуждение