Nginx http reverse-proxy

Nginx один из самых лучших и быстрых веб-серверов. Я часто его использую в качестве reverse-proxy когда с одного публичного (белого) IP необходимо пробросить несколько сайтов. На схеме ниже показана один из таких сценариев.

Revers-proxy

Причем не обязательно с Server1 Reverse Proxy делать проброс на бекэнды по разным портам (8080 и 8081). Веб-сервера могут слушать на любом порту какой вам нравится).

Естественно начнем мы с установки. Я буду ставить nginx на дебу(Debian squeeze). Логинимся на сервак и копипастим команды:

Примечание: если сервак сырой (чистый) то апдейтим спокойно.

sudo apt-get update
sudo apt-get upgrade

Сетапим сам nginx:

sudo aptitude install nginx

Ждем удачного сетапа и затем открываем конфиг сервера:

nano /etc/nginx/nginx.conf

Добавляем следующие строки:

server {
listen 192.168.1.1:80;
listen 8.8.8.8:80;
server_name examle.com www.examle.com;
#access section
allow all;
#deny all;
location / {
proxy_pass http://192.168.1.2:8080;
proxy_store on;
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 60;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffer_size 8k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

index index.php;

location ~ /\.ht {
deny all;
}

}
}

– listen это слушающий сокет

– proxy_pas на каком IP и порту находится backend

Перезапускаем сервер командой:

sudo /etc/init.d/nginx restart

Нас тройка законченна.

Если надо добавить еще один проброс просто добавляем еще один кусок конфига со своими настройками.

Pin It

One Reply to “Nginx http reverse-proxy”

  1. Proxying is typically used to distribute the load among several servers, seamlessly show content from different websites, or pass requests for processing to application servers over protocols other than HTTP.

Leave a Reply

Your email address will not be published. Required fields are marked *