Nginx как реверс прокси

Чтобы не забыть , понадобилось сделать реверс прокси на nginx чтобы в зависимости от того по какому имени идет обращение, запрос перенаправлялся на требуемый ip адрес на котором и расположен веб сервер( во внутренней сети ), обслеживающий это доменное имя. Схема такая. Есть сервер, который смотрит в инет(внешний сервер), на него приходят запросы клиентов. Есть внутренняя сеть в которой также есть веб сервера. Надо настроить проксирование запросов клиентов в зависимости от имени запрашиваемого сервера.

Для этого на серверах внутренней сети настраиваем nginx. На сервере, смотрящем в инет, настраиваем nginx как реверс прокси, в конфиге example.com.conf :

server {
listen 80;
server_name example.com;
location / {
proxy_pass http://192.168.0.123:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

при этом происходит проксирование на сервер во внутреннюю сеть по указанному ip где расположен сервер обслуживающий example.com.

Для проксирования https :

server {
listen 443 ssl;
server_name example.com;

ssl_certificate /usr/local/etc/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/server.key;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://192.168.0.123:80;
proxy_set_header Host $host;
proxy_set_header Accept-Encoding "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
}
}

При такой конфигурации ssl соединение устанавливается между клиентом и внешним сервером, который проксирует запрос на http порт сервера во внутреннюю сеть.

После изменения конфигурации nginx нужно перезапустить , перезагрузка конфига командой nginx -s reload не давала нужный результат.

Отправить комментарий

CAPTCHA
Чтобы убедиться в том что Вы не робот, ответьте, пожалуйста, на вопрос
Fill in the blank