Господа, выручайте!
В сети:
Керио - разруливает трафик. Http и https отправляет на Nginx.
Nginx - должен выступать в роли реверс-прокси.
IIS - выступает в роли реверс-прокси.
Тестовые сайты разработчиков, как правило хостятся на доменных машинах самих разработчиков, работают по HTTP (
test_1.test.domain.net, test_2.test.domain.net......) для них на IIS написаны схемы переопределения по типу test_1 = ip:port и т.д.
Боевые сайты, хостятся на серверах в домене, некоторые работают по HTTPS (
site_1.domain.ru, site_2.domain.ru....) для них на IIS подняты фермы, написаны шаблоны, указаны либо ip адреса с портами, либо фермы.
Задача: убрать IIS, а роль реверс прокси предоставить Nginx`у.
На данный момент на Керио работает правило, по которому весь HTTPS трафик уходит на Nginx:
server {
listen 443 ssl;
server_name .domain.ru;
include /etc/nginx/include/ssl; # инклюд сертификатов
location / {
proxy_pass http://IIS:80/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
По сути, Nginx только цепляет сертификат к сайту и футболит его на IIS, где сайт попадает под то или иное правило, и попадает либо на соответствующую ферму, либо на соответствующий ip:port.
С тестовыми сайтами, работающими по http вроде разобрался. Предварительно включив правило в Керио, по которому HTTP трафик уходит на Nginx:
server {
listen 80;
server_name test_1.test.domain.net; #проверяем имя сайта
location / {
proxy_pass http://192.168.0.100/; #IP адрес и порт сайта внутри сети
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-relay-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
и так далее для каждого тестового сайта по http.
А вот для https ни как не могу настроить... Если добавляю конфиг хотябы для одного сайта:
server {
listen 443 ssl;
server_name site_1.domain.ru;
include /etc/nginx/include/ssl; # инклюд сертификатов
access_log /etc/nginx/logs/issues.access.log;
error_log /etc/nginx/logs/issues.error.log;
location / {
proxy_pass http://site_1.domain.ru;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Остальные сайты site_2.domain.ru, site_3.domain.ru, для которых нет явных конфигов тоже работают. Мне этот момент не понятен ни как...
Собственно, как реализовать реверс проксирование для https? Не хочется делать по аналогии с http. Хочется как-то унифицировать это дело.
З.Ы. Сильно не пинайте, с Nginx`ом только начал разбираться.