Kolvan Posted June 26, 2017 Posted June 26, 2017 Ситуация такова. Есть один белый внешний IP и пару сайтов, которые находятся на физически разных серверах за NATом. Допустим в локалке их IP 10.64.32.244 - www.site1.com и www.site2.com 10.64.32.2 - admin.site1.com, stat.site1.com, map1.site1.com Оба сервера используют как 80, так и 443 порт. Как сделать так, чтобы был доступ ко всем сайтам, не используя MikroTik Web-proxy. Уж очень не нравится, как он работает. Слышал подобные вещи делают на Layer7, но инструкции не нашёл. Вставить ник Quote
Kolvan Posted June 26, 2017 Author Posted June 26, 2017 view на DNS не помогут? Можно подробнее? Вставить ник Quote
VolanD666 Posted June 26, 2017 Posted June 26, 2017 Напишите, конкретнее, что нужно сделать. Нужно чтобы ДНС в зависимости от источника запроса давал разные ответы по доменам? Вставить ник Quote
Kolvan Posted June 26, 2017 Author Posted June 26, 2017 (edited) Нужно чтобы при обращении на внешний IP на 80 порт dnt-nat заворачивал пакеты на тот локальный адрес, который соответствует домену или поддомену. Например при обращении на www.site1.com, DST-NAT рулил на 10.64.32.244:80, а при обращении на admin.site1.com на 10.64.32.2:80... ну и по аналогии с https. Edited June 26, 2017 by Kolvan Вставить ник Quote
VolanD666 Posted June 26, 2017 Posted June 26, 2017 А адреса могут меняться или в чем проблема? Причем тут днс, почему жестко не привязать их к ИПам? Вставить ник Quote
mafijs Posted June 26, 2017 Posted June 26, 2017 (edited) Нужно чтобы при обращении на внешний IP на 80 порт dnt-nat заворачивал пакеты на тот локальный адрес, который соответствует домену или поддомену. С внутренней сети смотреть - https://wiki.mikrotik.com/wiki/Hairpin_NAT Edited June 26, 2017 by mafijs Вставить ник Quote
Kolvan Posted June 26, 2017 Author Posted June 26, 2017 (edited) Ещё раз более подробно сформулирую. Есть внешний IP, допустим 10.20.30.40 на нём за NATом сидит два вэб-сервера. На одном находятся ресурсы www.site1.com и www.site2.com, на втором admin.site1.com, stat.site1.com и т.д. Нужно сделать так, чтобы при обращении из вне на IP 10.20.30.40:80, а именно на ресурс admin.site1.com, роутер делал DST-NAT на 10.64.32.2:80, а при обращении на www.site2.com делал DST-NAT на 10.64.32.244:80. Такое возможно реализовать на файерволе микрота с использованием Layer7 protocol? P.S. не столь важно, чтобы на внутренних серверах на обоих были 80 порты. Тут самая главная проблема поймать нужные запросы. Edited June 26, 2017 by Kolvan Вставить ник Quote
paindrug Posted June 26, 2017 Posted June 26, 2017 Не придумывать извращения, использовать какой-нибудь reverse-proxy, например nginx. Вставить ник Quote
vop Posted June 26, 2017 Posted June 26, 2017 Без прокси - никак. Точнее, он этим и занимается. Вставить ник Quote
Kolvan Posted June 26, 2017 Author Posted June 26, 2017 Тупит прокси достаточно сильно. Сразу после ребута микрота сайты мгновенно открываются. Через некоторое время начинается тупняк... по несколько секунд ждёшь перехода с одной страницы на другую. Сервак весь уже вылизали, при работе напрямую тормозов нет. Исходя из того, что они пропадают сразу после ребута микрота - дело в микроте. Вставить ник Quote
orlik Posted June 26, 2017 Posted June 26, 2017 Оставляете на микротике чистый нат, и на одном из серваков поднимаете nginx , конфигурите его как reverse proxy и разруливаете запросы на нем. Вот и все решение. Вставить ник Quote
Kolvan Posted June 26, 2017 Author Posted June 26, 2017 Оставляете на микротике чистый нат, и на одном из серваков поднимаете nginx , конфигурите его как reverse proxy и разруливаете запросы на нем. Вот и все решение. У меня на обоих серваках Nginx в качестве вэб-сервера. Подкиньте пожалуйста примерный конфиг vhost или конфига nginx. Вставить ник Quote
paindrug Posted June 26, 2017 Posted June 26, 2017 Оставляете на микротике чистый нат, и на одном из серваков поднимаете nginx , конфигурите его как reverse proxy и разруливаете запросы на нем. Вот и все решение. У меня на обоих серваках Nginx в качестве вэб-сервера. Подкиньте пожалуйста примерный конфиг vhost или конфига nginx. server { listen 80; server_name имя сервера, например (2.mikrotika.ru); location / { proxy_pass http://192.168.15.16; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } Вставить ник Quote
VolanD666 Posted June 27, 2017 Posted June 27, 2017 второй ИП взять совсем не вариант? Вставить ник Quote
myth Posted June 27, 2017 Posted June 27, 2017 А зачем тратить так бездарно белые адреса? Вставить ник Quote
VolanD666 Posted June 28, 2017 Posted June 28, 2017 А зачем тратить так бездарно белые адреса? Чтобы не городить костыльные костыли? Вставить ник Quote
myth Posted June 28, 2017 Posted June 28, 2017 Ну да, если не осилить nginx, то да... Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.