Я часто использую Nginx в качестве обратного прокси для всех моих внутренних размещенных приложений.
В большинстве случаев эти приложения вызываются с IP-адресом, и все работает хорошо.
На этот раз я хочу использовать прокси для WordPress, размещенного на внутреннем сервере Apache2.
Поэтому я хочу использовать внутренний DNS в качестве VirtualHost в Apache.
Проблема в том, что Nginx всегда использует IP вместо внутреннего DNS для вызова Wordpress.
Поэтому я не нацелен на правильный VirtualHost на Apache.
Как я могу заставить Nginx использовать DNS вместо переписать его как IP?
server{
server_name http://my-external-dns.com;
location / {
proxy_pass http://my-internal-dns.lan/;
proxy_set_header X-Forwarded-Host $host;
proxy_read_timeout 10;
proxy_connect_timeout 10;
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 https;
proxy_set_header Host $host;
}
}
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
proxy_busy_buffers_size 64k;
[01/Jun/2020:10:14:26 +0200] 109.190.219.189 (-) "my-external-dns.com" "GET / HTTP/1.1" 200 2 => 192.168.10.10:80
Вы можете видеть, что он использует IP 192.168.10.10, который является IP-адресом хоста my-internal-dns.lan.
Так должно быть
[01/Jun/2020:10:14:26 +0200] 109.190.219.189 (-) "my-external-dns.com" "GET / HTTP/1.1" 200 2 => my-internal-dns:80
Я думаю, проблема не в этом, а в конфигурации Nginx
# My Specific Host
<VirtualHost *:80>
ServerName my-internal-dns.lan
DocumentRoot /var/www/prod/mydir/
<Directory /var/www/prod/mydir>
Options All
AllowOverride All
</Directory>
</VirtualHost>
# My Default Host
<VirtualHost *:80>
DocumentRoot /var/www/
<Directory /var/www>
AllowOverride All
Options All
</Directory>
</VirtualHost>
Как было сказано ранее, Nginx переходит на хост по умолчанию, а не на конкретный.
С уважением