Назад | Перейти на главную страницу

Как прокси-сервер на Apache?

Я googledd, и я не мог найти ничего, что было бы директивой по настройке apache для proxypass.

Мне удалось найти Перенести домен на новый веб-хостинг, не дожидаясь распространения DNS но я не понимаю, о чем они говорят, особенно следующее:

1) как включить прокси, proxy_http и модули перезаписи

2) где найти конфигурационный файл apache и эту строчку?

RewriteEngine on 
ProxyPassReverse   /      http://<your-fqdn-here>/
ProxyPass          /      http://<your-fqdn-here>/

Я имею в виду, можете ли вы помочь мне настроить ProxyPass?

Обновить

Я работаю на версии CentOS Apache:

Server version: Apache/2.2.22 (Unix)
Server built:   Feb 10 2012 16:45:29
Cpanel::Easy::Apache v3.9.1 rev9999

Я попытался установить прокси-модули, следуя этому руководству http://www.hackersgarage.com/install-mod_proxy-apache-module-on-whmcpanel-ceentos-linux-server.html

Но у меня такая ошибка:

./configure --enable-mods-shared="proxy proxy_http proxy_connect"
-bash: ./configure: /bin/sh: bad interpreter: Permission denied

Так что я просто проигнорировал это и продолжил выполнение остальных команд. Когда я попытался перезапустить apache:

root@db [/tmp/httpd-2.2.22]# /etc/init.d/httpd restart  
httpd: Syntax error on line 36 of /usr/local/apache/conf/httpd.conf: module proxy_module is built-in and can't be loaded

Просто добавил это в httpd.conf, и он сработал

< VirtualHost *:80 >
   ServerName domain.com
ServerAlias www.domain.com

<IfModule mod_proxy.c> ProxyPass / http://www.newdomain.com/ ProxyPassReverse / http://www.newdomain.com/ </ IfModule> </ VirtualHost>

Я постараюсь ответить на ваши вопросы как можно лучше, используя предоставленную вами информацию.

Во-первых, что касается модулей включения, это будет зависеть от распределения. Например, в RHEL / CentOS модули перезаписи и прокси включены в базовый пакет httpd, вам больше ничего делать не нужно.

В Debian, напротив, вам необходимо создать символическую ссылку на файл конфигурации из доступных модов в файлы с включенными модами. Есть инструмент под названием a2enmod чтобы помочь в этом, например:

a2enmod proxy
a2enmod rewrite

Вы должны посмотреть, какие модули можно включить, просмотрев файлы конфигурации в /etc/apache2/mods-available/, если вы используете Debian. Я считаю, что Ubuntu Server точно такой же.

Что касается пункта 2, вы можете поместить конфигурацию прокси в <VirtualHost> декларацию, которую вы хотите передать через прокси. Это, опять же, может варьироваться в зависимости от распределения или предпочтений. Большинство систем RHEL / CentOS поощряют использование специфичных для сайта my-website.com.conf файл в /etc/httpd/conf.d/. Пользователи Debian должны поместить файл в /etc/apache2/sites-enabled/ (или в sites-availableи создайте символическую ссылку с помощью a2ensite). Полное руководство по этим вспомогательным инструментам можно найти Вот.

Взгляните на это:

http://library.linode.com/web-servers/apache/proxy-configuration/multiple-webservers-proxypass-centos-5

Это для CentOS5, но CentOS6 будет иметь аналогичную конфигурацию, поскольку Apache существенно не изменился.

По сути, вам не следует пытаться скомпилировать mod_proxy. HTTPd-сервер CentOS уже имеет это в виде встроенного модуля. Вам просто нужно активировать директивы прокси, используя приведенный выше документ. Итак, вы должны отменить все изменения, которые вы внесли при компиляции модуля.