Прокси-сервер Apache для Lighttpd: изменение $ _SERVER ['HTTP_HOST'] в php - PullRequest
0 голосов
/ 10 мая 2010

У меня есть блог WordPress, работающий на lighttpd-1.4.19, прослушивающий по адресу www00: 81. На том же хосте apache-2.2.11 прослушивает порт 80, который создает прокси-соединение от http://blog.mydomain.org:80 до http://blog.mydomain.org:81 (оба являются одной и той же физической машиной).

Виртуальный хост Apache выглядит следующим образом:

<VirtualHost *:80>
    ServerName blog.mydomain.org
    ProxyRequests Off

    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>

    ProxyPass / http://blog.mydomain.org:81/
    ProxyPassReverse / http://blog.mydomain.org:81/
</VirtualHost>

Используя debug.log-request-handling = "enable", при просмотре http://blog.mydomain.org:80 (обратите внимание на заголовки Host) я получаю следующую запись:

2010-05-10 08:47:14: (request.c.294) fd: 6 request-len: 853 
GET / HTTP/1.1
Host: blog.mydomain.org:81
[...]

2010-05-10 08:47:15: (request.c.294) fd: 8 request-len: 754 
GET /wp-content/uploads/2010/01/image.gif?w=280 HTTP/1.1
Host: www00:81

Моя проблема: насколько я знаю, переменная окружения PHP $_SERVER['HTTP_HOST'] установлена ​​в эту переменную заголовка Host. К сожалению, WordPress использует эту переменную в своей системе для создания URL-адресов к изображениям в блоге. Эти URL не будут доступны за брандмауэром, конечно. Как я могу заставить заголовок хоста быть blog.mydomain.org вместо blog.mydomain.org:81, соответственно www00:81? Я уже добавил set server.name = "blog.mydomain.org" к своему lighttpd.conf, но это не сработало.

Любые предложения приветствуются, спасибо.

1 Ответ

2 голосов
/ 10 мая 2010

Вы пробовали редактировать wp-config.php? Должна быть возможность отмены автоматического определения хоста.

А именно:

...