Проблемы с 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) в качестве обслуживаемого домена.
Надеюсь, поможет!