воскресенье, октября 30, 2011

CentOS 6.2+nginx 1.0.11 (reverse-proxy)+iptables

Имеем минимальный CentOS 6.2. Ставим и настраиваем nginx 1.0.11 как reverse-proxy для кучи сайтов в LAN. Схема следующая

INTERNET --- eth0 (XXX.XXX.XXX.XXX) | eth1 (192.168.X.1) --- LAN (192.168.X.0/24)

1. Апдейтим CentOS 6.2
# yum update

2. Устанавливаем repo с nginx прямо с http://nginx.org/
# rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

3. Устанавливаем nginx 1.0.11
# yum install nginx

4. Настраиваем reverse-proxy
# vi /etc/nginx/nginx.conf

5. Добавляем в секцию http

     upstream site01 {
        server 192.168.X.20:80; # меняем адрес на свой внутренний веб-сервер
     }

     server {
        listen  80;
        server_name site01.defaultcompany.com;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        index  index.html index.htm;
        location / {
            proxy_pass         http://site01;
        }
    }

6. Настраиваем iptables
# vi /etc/sysconfig/iptables
Перед последними строками

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
Пишем

#************* eth0:80,443 (http)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

#

7. Рестартим nginx
# service nginx restart

Теперь если defaultcompany.com указывает на ваш сервер, то по адресу http://site01.defaultcompany.com будет опубликовано http://192.168.X.20:80.

Комментариев нет:

Мой список блогов