Задать вопрос
@tefoxis

Nginx. Почему директива $server_addr выдает только локальный ip сервера?

Всем привет.

Имеется nginx сервера в сети.
Внутри его ip допусти 192.168.100.10
Снаружи за NAT его ip 52.200.200.10

Есть директива $server_addr в Nginx, которая судя по описанию:
$server_addr, эта переменная равна адресу сервера, на который пришёл запрос. Как правило, для получения значения этой переменной делается один системный вызов.


Мне нужно чтобы в зависимости от того извне пришли или изнутри $server_addr равнялось либо внутреннему ip либо внешнему.
Но сейчас я бы не зашел судя по логам $server_addr хранит только внутренний Ip. Почему так может быть? Неправильный конфиг? Возможно ли это вообще?

Мой конфиг (для примера):
server {
     listen 80;
     server_name example.com;
     return 301 https://$host$request_uri;
}
server {
     listen 443 ssl;
     server_name example.com;
......................................
}


Спасибо заранее за ответы
  • Вопрос задан
  • 470 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Поскольку у вас внешний адрес - не на сервере, то и использоваться он никогда не будет. Какую задачу вы пытаетесь решить с помощью этой переменной?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы