Так сложилось, что тазик с прокси был Убунтой (клиент категорически н ехотел работать с другими дистрибутивами Linux), а “в Убунте всё не как у людей” (с) 🙂 потому конфигурация её несколько отличается от других дистрибутивов. Но, приняв философию Убунты, я понял, что многие решения в ней очень даже удобны, хотя некоторые мне не нравятся – например, отсутствие пользователя root. Но это уже философия, грозящая холиваром, потому перейдем к делу 🙂
В убунте манипулирование апачем происходит с помощью глобальных команд: включение/выключение виртуал хостов – a2ensite / a2dissite с одним аргументом – пути к конфигу, в котором прописан виртуал хост. Включение/выключение модов или расширений происводится командами a2enmod / a2dismod.
В общем, алгоритм работы такой:
1) Нужно включить необходимые модули апача. Устанавливаем:
sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls
2) Делаем конфиг виртуал хоста (по 1му файлу на 1 хост!) и помещаем его в /etc/apache2/sites-available. Пример HTTPS конфига проксирования на тазик с Confluence – это такая джавовская веб-морда для программистов и не только, работающая на Apache Tomcat (с портом 8444):
<VirtualHost *:443>
#мыло админа и документ рут не существующий – т. к. апач требует хоть какой-то обязательно
ServerAdmin admin@mydomain.com
DocumentRoot “/etc/httpd/docs/dummy-host.example.com”
#вот здесь внимательно заполняем теми данными, которые у нас есть в ДНС-ах
ServerName conf.mydomain.com
ServerAlias www.conf.mydomain.com
#настройки SSL – включение SSL и пути к файлам ключей
SSLEngine On
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
#включение прокси для данного виртуал хоста и некоторые настройки. Я в них особо не вчитывался – работает так отлично 🙂
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
<proxy *>
Order deny,allow
Allow from all
</proxy>
#чего и куда проксируем / означает что проксируются все запросы к сайту, начиная с корня
ProxyPass / https://192.168.1.132:8444/
ProxyPassReverse / https://192.168.1.132:8444/
</VirtualHost>
Замечание: Не забываем создать ssl-сертификаты либо положить с другой машины в папку /etc/ssl/ и выставить права (chmod 700 /etc/ssl/ и на файлы: chmod 600 /etc/ssl/server.crt и chmod 600 /etc/ssl/server.key)
Для HTTP virtual host убираются строчки, связанные с SSL и меняется порт 443 на 80, SSLProxyEngine On меняется на ProxyEngine On. Ну и в директиве ProxyPass https на http – понятное дело.
Затем командой
sudo a2ensite /etc/apache2/sites-available/конфиг_виртуал_хоста
Активируем наш виртуал хост. После этого нужно перезагрузить апач:
sudo /etc/init.d/apache2 reload
Усё, будет проксировать.
После долгого секса с Debian выяснил, что надо еще дополнительно сделать: