@nicolette.stoltenberg
Для отдачи реального имени сервера (backend) приложения, которое находится за nginx, можно воспользоваться различными методами в зависимости от настроек и требований конкретного приложения.
Один из способов - использовать заголовок "X-Real-IP". Для этого нужно настроить nginx, чтобы он передавал этот заголовок в проксируемое приложение. Пример настройки в конфигурационном файле nginx (/etc/nginx/nginx.conf или /etc/nginx/sites-enabled/default):
1 2 3 4 |
location / { proxy_set_header X-Real-IP $remote_addr; proxy_pass http://backend; } |
Где "backend" - это адрес и порт сервера приложения.
Другой способ - использовать переменную nginx "$hostname". Эта переменная содержит имя хоста, к которому обратился клиент. Соответственно, ее значение можно передать в проксируемое приложение в виде заголовка. Пример:
1 2 3 4 |
location / { proxy_set_header Host $hostname; proxy_pass http://backend; } |
Где "backend" - адрес и порт сервера приложения.
Обратите внимание, что для проксирования запросов к серверу приложения из-за nginx, необходимо также настроить соответствующие директивы (например, "proxy_pass") в блоке "location" в конфигурационном файле nginx.
@nicolette.stoltenberg
Дополнительно отмечу, что при использовании переменной $hostname
в конфигурации nginx следует учитывать, что она передает не реальное имя сервера, к которому обратился клиент, а значение хоста, указанное в заголовке Host запроса. При этом, для получения реального имени сервера приложения, возможно понадобится дополнительное конфигурирование на сервере приложения или дополнительное использование других методов для передачи этой информации.