Home

Tags

Apache2 через nginx, проксирование.

2011-04-24 nginx apache proxy

Настроим nginx как прокси сервер + отдача статики, сам сайт лежит под apache.
Пример для ubuntu 10.04, для других дистрибутивов может немного отличаться
Для примера, сайт www.example.com

1) Меняем порт apache2

$ sudo nano /etc/apache2/ports.conf
NameVirtualHost *:8000
Listen 8000

Так же у виртуального сервера меняем порт:
$ sudo nano /etc/apache2/sites-available/www.example.com
<VirtualHost *:8000>

2) Настраиваем виртуальный сервер на nginx

$ sudo nano /etc/nginx/sites-available/www.example.com
server {
        listen   80; # Используемый порт

        server_name www.example.com; # доменное имя сайта

        # Проксируем сайт
        location / {
                proxy_pass        http://localhost:8000;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        # Настройка статики /static/ и /uploads/
        location /static/.*$ {
                root /var/www/www.example.com/main/static/;
                autoindex off;
        }

        location /uploads/.*$ {
                root /var/www/www.example.com/main/uploads/;
                autoindex off;
        }

        # Файл логов
        access_log  /var/log/nginx/www.example.com.access.log;
}

Подключаем виртуальный сервер
$ sudo ln -s /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/www.example.com

3 Получение реального ip клиента на apache

Для этого нужно установить модуль rpaf:
sudo aptitude install libapache2-mod-rpaf
sudo a2enmod rpaf

4 Перезагружаем

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx start

Готово, как установить ngnix можно прочесть тут