Как настроить обратный прокси-сервер с Apache2 для Windows
Я получил и запустил обратный прокси на apache2 под Linux (Ubuntu). Теперь я вижу, что под Windows есть другая структура папок. Мои linux-conf - файлы не работают под windows или я не прав?
Пожалуйста, покажи мне путь
3 ответа
Как сказал Джон, конфигурация по умолчанию для Apache, установленного в Windows, имеет вид Program Files\Apache2.2\httpd.conf
в плоском файле. Путь может быть несколько другим, так как в данный момент у меня нет машины с Windows. Большинство дистрибутивов Linux имеют свою собственную иерархическую структуру, которая выглядит примерно так: Этот пример взят из Debian и может отличаться от других дистрибутивов.
/etc/apache2/
apache2.conf
Пакет при условии конфигурацииconf.d/
- Отдельные файлы конфигурации, обычно из других пакетов, но также могут быть локальными файлами конфигурации
httpd.conf
Локальный файл конфигурации. Переопределяет содержимое apache2.confmods-available/
- Отдельные файлы конфигурации модуля, предоставляемые пакетом и любыми пакетами поддержки
mods-enabled/
- Ссылки на файлы в
mods-available
, Ссылки создаются / удаляются сa2enmod
а такжеa2dismod
, Создание ссылки включает данный модуль.
- Ссылки на файлы в
ports.conf
Включенные портыsites-available/
- Индивидуальный
VirtualHost
конфигурационные файлы
- Индивидуальный
sites-enabled
- Ссылки на файлы в
sites-available
, Ссылки создаются / удаляются сa2ensite
а такжеa2dissite
, Создание ссылки разрешает данный сайт.
- Ссылки на файлы в
Я описал все это, чтобы, надеюсь, было легче понять, как копировать его под Windows. За исключением того, что ссылки плохо поддерживаются в Windows (изменилось ли это в Vista/Server 2008/Windows 7?), Эту структуру относительно легко настроить. Но вам придется сделать это вручную, так как конфигурация по умолчанию не делает это за вас. Убедитесь, что вы настроили следующее, чтобы соответствовать дистрибутиву Linux, из которого вы мигрируете.
Предполагая, что оригинальный файл конфигурации в Windows находится в
\Program Files\Apache2.2\httpd.conf
(опять же, это может быть не правильное расположение, мне нужно проверить машину Windows, чтобы убедиться), создайте следующие каталоги:\Program Files\Apache2.2\conf.d\
\Program Files\Apache2.2\sites-enabled\
Вам не нужно
sites-available
каталоги, так как ссылки не поддерживаются в Windows. Вы можете добавить их, если хотите, но все не будет работать так же. Также я бы порекомендовал поместить конфигурации модулей в файл httpd.conf. Поскольку они не управляются менеджером пакетов, будет проще хранить их в одном месте.Внесите любые изменения в Linux
httpd.conf
файл в файл Windows. Если у вас естьapache2.conf
файл под Linux, это легко, так какhttpd.conf
будет иметь переопределения только дляapache2.conf
,Добавить
ports.conf
файл, если хотите. Содержимое этого также может существовать в файле httpd.conf.Скопируйте файлы, которые существуют в Linux
conf.d
каталог в каталог Windows. Убедитесь, что имена файлов заканчиваются.conf
добавив его, если его там не было раньше. Это сделано для того, чтобы сделать синтаксический анализ каталога (настроенный ниже) менее подверженным ошибкам.Скопируйте файлы, которые существуют в Linux
sites-enabled
каталог в каталог Windows. Как и в шаге 4, убедитесь, что имена файлов заканчиваются на.conf
добавив его, если он не существует в Linux.Добавьте следующее в конец файла httpd.conf:
# If you added a ports.conf file, add the following Include ports.conf # Include the conf.d files Include conf.d/*.conf # Include the enabled sites Include sites-enabled/*.conf
Перезапустите Apache. Убедитесь, что вы проверяете и исправляете любые ошибки конфигурации.
Это может не привести вас туда на 100%, но это должно приблизить вас.
Есть ли причина, по которой вы не можете создать ту же структуру папок в Windows, что и в Linux? Вы не можете ожидать, что просто установите Apache и волшебным образом создадите дерево папок, которые не являются частью его конфигурации по умолчанию. Создайте ту же структуру, скопируйте конфиги и отредактируйте как и где это необходимо.
Теперь я нашел решение со следующим:
NameVirtualHost *:80
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# der Adresse http://>servername</crm wird hier wie folgt umgeleitet
ProxyPass /crm http://localhost:8080/crm
ProxyPassReverse /crm http://localhost:8080/crm
# der Adresse http://>servername</trac wird hier wie folgt umgeleitet
ProxyPass /trac http://localhost:8000/trac
ProxyPassReverse /trac http://localhost:8000/trac
</VirtualHost>
и это идет в C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf
Это очень просто, если вы знаете, куда поместить параметры, потому что стандартная структура папок после стандартной установки отличается для apache2.2 в ubuntu 8.04 и windows2008.
мир
лед