В наличии:
На входе Mikrotik (внешний IP 99.99.99.99; локальный IP 192.168.0.1)
Web server NGINX (локальный IP 192.168.0.2)
Mail server iRedmail (локальный IP 192.168.0.3)
Настройки:
На Mikrotik стоит переадрессация внешнего порта 80 на локальный IP 192.168.0.2:80 (NGINX)
На NGINX:
server {
listen 80;
server_name mail.babruisk.ru www.mail.babruisk.ru;
location / {
proxy_pass http://192.168.0.3:80/;
proxy_set_header Host mail.babruisk.ru;
proxy_set_header X-Real-IP $remote_addr;
}
}
Переадрессация не работает, но если закомментировать две строки proxy_set_header, то идет подмена домена на локальный адрес снаружи.
Подскажите, пожалуйста, как правильно настроить переадрессацию в nginx.
________________________________________________________________________________________________
Ответ был найден:
server {
listen 80;
server_name mail.babruisk.ru www.mail.babruisk.ru;
location / {
proxy_pass http://192.168.0.3:80;
proxy_redirect default;
proxy_redirect http://192.168.0.3:80/ http://mail.babruisk.ru/;
}
}
НО Задача усложнилась:
Так как iRedMail использует SSL и сам локально через конфиг NGINX редиректит всё c 80 на 443 (.../mail .../SOGo .../iredadmin), переделал конфиг:
server {
listen 80;
listen 443;
server_name mail.babruisk.ru www.mail.babruisk.ru;
location / {
proxy_pass https://192.168.0.3:443;
proxy_redirect default;
proxy_redirect https://192.168.0.3:443/ https://mail.babruisk.ru/;
}
}
Извне заходит по
mail.babruisk.ru, показывает морду, дальше не идет (((
По https выдает ошибку SSL
Признаюсь перелопачивать весь конфиг nginx на mail сервере не хочу, так как там можно понаделать ошибок и в итоге закопаться.
Как сделать правильные проксируемые https запросы?
_____________________________________________________________________________________________________________
ВСЕМ СПАСИБО!!! Ответ нашел:
Для проксирования https запросов сделал такой конфиг:
server {
listen 443;
server_name mail.babruisk.ru www.mail.babruisk.ru;
access_log /var/log/nginx/ssl-access.log;
ssl on;
ssl_certificate /var/ssl/iRedMail.crt;
ssl_certificate_key /var/ssl/iRedMail.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass https://192.168.0.3/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass_header Set-Cookie;
}
}
Еще перекинул с MAIL сервера SSLки на WEB сервер
Все заработало!!!