Рейтинг:0

сопоставление внешнего адреса WAN с переменной Nginx

флаг br
aag

У меня есть веб-сервер Nginx в локальной сети, к которому из Интернета обращается NAT. Переменная $server_addrсодержит внутренний LAN-адрес сервера. Есть ли способ сопоставить внешний (доступный в Интернете) IP-адрес веб-сервера с переменной Nginx?

флаг us
Какую реальную проблему вы пытаетесь решить?
aag avatar
флаг br
aag
Домен WAN имеет динамический IP. Меняется редко, но меняется. Я хотел бы, чтобы Nginx обслуживал динамически в зависимости от того, обращается ли клиент к серверу из локальной сети (в этом случае удаленный адрес клиента будет внешним адресом глобальной сети).
djdomi avatar
флаг za
Вопросы о сбое сервера должны касаться управления системами информационных технологий в бизнес-среде. Вопросы о домашних и конечных компьютерах можно задавать в Super User, а вопросы о разработке, тестировании и инструментах разработки можно задавать в Stack Overflow.
aag avatar
флаг br
aag
Динамический DNS также является реальностью во многих компаниях. Но верблюду легче пройти сквозь игольные уши, чем задать вопрос, который не вызовет снисходительных замечаний со стороны самопровозглашенных conoscendi.
Рейтинг:1
флаг us

nginx по умолчанию привязывается ко всем интерфейсам, IP-адреса интерфейсов ему не нужны. Таким образом, он обслуживает любой IP-адрес, независимо от того, поступает ли запрос через WAN или LAN.

Вам необходимо настроить динамический DNS для вашего домена. Ваш сервер будет содержать демона, который обновляет новый внешний IP-адрес до динамического поставщика DNS. Тогда все клиенты будут использовать динамическое DNS-имя для подключения к серверу.

Другой альтернативой является установка DNS-сервера в локальной сети, который разрешал бы доменное имя сервера в IP-адрес локальной сети, а затем заставлял клиентов локальной сети использовать этот DNS-сервер.

Рейтинг:1
флаг br
aag

Я решил проблему с помощью cronjob, чтобы обновить файл сопоставления для внешнего IP-адреса:

#!/usr/bin/env bash
# перечислить авторизованные сети
кошка > /etc/nginx/current_ip.conf <<EOF
гео \$mysite_geo {
 по умолчанию "нет";
 127.0.0.1 «да»; # сеть, к которой должен быть доступ
 10.10.0.0/16 «да»; # сеть, к которой должен быть доступ
 EOF

((echo " " && (dig +short example.com | grep '^[.0-9]*$')) \
 && echo "\"yes\"; } # текущий динамический ip") |xargs -d'\n' \
 >> /etc/nginx/current_ip.conf

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.