У меня есть Nginx, работающий в качестве обратного прокси-сервера, на том же компьютере, на сайте Wordpress. Оба являются docker контейнерами. У меня есть домен с A-записью на мой publi c IP, и у меня включена переадресация портов, так что порт 80 перенаправляется на хост-компьютер. Только Nginx сопоставлен с портом 80 этой машины, порт Wordpress (также 80) не сопоставлен с портом хоста и не доступен вне прохождения Nginx.
Пока все хорошо. Если я подключаюсь к веб-сайту с использованием IP-адреса локального хоста, он работает (как, например, nginx правильно проксирует меня к веб-сайту). Однако, если я использую домен, то он делает 301 для локального (!) Адреса хоста. Итак, я набираю exampledomain.com в своем браузере, и он перенаправляет меня на 192.168.1.x (локальный IP-адрес хост-машины с контейнерами nginx и wordpress).
Я много искал в Google, но, к сожалению, не смогли найти правильный ответ. Я предполагаю, что я делаю что-то не так в конфигурации Nginx, которая выглядит следующим образом:
events {}
http {
server {
listen 80;
server_name exampledomain.com www.exampledomain.com;
location / {
proxy_pass http://wordpress;
proxy_pass_request_headers on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
}
Это все еще только на порту 80, но я планирую убедиться, что любой запрос порта 80 будет переадресован на порт 443. Однако я не могу показаться, что это первый шаг к работе, поэтому давайте сначала сосредоточимся на этом. Как мне убедиться, что он не перенаправляет мой запрос на локальный IP-адрес, а фактически сохраняет exampledomain.com в адресной строке браузера?