Проблемы с localhost и доменом

Я не знаю, что делать дальше.

У меня есть сервер nginx, настроенный на передачу запросов к порту на той же машине, где слушает сервер apache2 (да, это необходимо).

Я делаю это с помощью

location /
{
    proxy_pass http://127.0.0.1:1000; 
}

в nginx.

Это прекрасно работает с простым HTML-файлом с простым текстом. Теперь я захотел настроить Wordpress и увидел, что CSS отсутствует. Это было потому, что мой браузер пытался получить CSS-файлы (и другие) из http://127.0.0.1/somefilehere.css вместо http://example.com/somefilehere.css, Очевидно, это не то, что я хочу, но я понятия не имею, как это исправить. Я также не знаю, какую дополнительную информацию предоставить, поэтому не стесняйтесь спрашивать.

Обновить:

Чтобы определить проблему, все ссылки в HTML указывают на localhost (клиентский компьютер), где, конечно, нет css и прочего.

Спасибо и хорошего дня!

2 ответа

Решение

Я думаю, что вы можете сделать это, добавив это в свой блок местоположения:

proxy_set_header Host            $host;

Таким образом, ваш сервер Apache знает, какой веб-сайт посещает пользователь.

Кстати, если возможно, пусть Nginx будет обслуживать статические файлы. В этом Nginx хорош, а Apache плох. Сделать отдельные блоки местоположения для css, jpg, pngи т. д. В Интернете есть множество примеров.

Возможно, сбой не включен nginx, но на Apache не признавая 127.0.0.1 действительная часть хоста URL.

Простой тест исключил бы это: с того же компьютера попробуйте получить доступ к этому файлу CSS непосредственно с сервера Apache:

curl http://127.0.0.1:1000/somefilehere.css

Если это возвращает файл без ошибок, вы можете опубликовать журналы доступа и ошибок из nginx (включая их, если они еще не доступны). Ссылка: https://www.nginx.com/resources/admin-guide/logging-and-monitoring/

Если вы получили ошибку от curl, вы должны проверить, какие IP-адреса слушает Apache(должен быть 0.0.0.0, порт 1000, а не конкретный ip или сеть, которая оставляет петлевой интерфейс).

Кроме того, убедитесь, что директивы servername и virtual hosts в файлах конфигурации Apache включают 127.0.0.1 (или localhost) в качестве обслуживаемого домена.

Надеюсь, поможет!

Другие вопросы по тегам