Настройка Reverse Proxy Apache (Debian 8)

Автор: | 01.06.2017

Решил я поднять реверс прокси на апаче, да чтобы работала автовыдача сертификатов Let's Encrypt. За основу берем что у нас стоит чистый Debian GNU/Linux 8 (jessie)

Ну что-ж, поехали.

aptitude install -y build-essential
aptitude install -y libapache2-mod-proxy-html libxml2-dev
aptitude install -y apache2

После чего активируем следующие модули:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_html
a2enmod proxy_ftp
a2enmod proxy_connect
a2enmod ssl

и рестартуем Apache

service apache2 restart

Тут нас поджидает первая неудача, Apach'у для правильной работы не хватает модуля mod_xml2enc, НО! в Jessie этот модуль не работает, нам последовательно нужно внести следующие комманды:

aptitude install apache2-prefork-dev libxml2 libxml2-dev apache2-dev
mkdir ~/modbuild/ && cd ~/modbuild/
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.c
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.h
apxs2 -aic -I/usr/include/libxml2 ./mod_xml2enc.c
cd ~
rm -rfd ~/modbuild/
service apache2 restart

После чего, все у нас хорошо, модуль стоит. Едем дальше 🙂

Так как мы хотим опубликовать HTTPS сайт, до того момента пока мы не установим Let's Encrypt, нам нужно сделать самоподписанный сертификат для нашего сайта, вводим комманду:

mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Нам нужно создать файл конфигурации и назвать его понятным именем:

touch /etc/apache2/sites-available/sambi4.conf

И задаем файлу такое содержание:

<VirtualHost *:80>
ServerName sambi4.ru
Redirect permanent / https://sambi4.ru/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full

SSLCertificateFile /etc/apache2/ssl/server.crt #указываем путь к нашему самоподписанному сертификату
SSLCertificateKeyFile /etc/apache2/ssl/server.key #указываем путь к нашему самоподписанному сертификату

ProxyHTMLInterp On
ProxyHTMLExtended On

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

ProxyPass / https://192.168.1.78/
ProxyPassReverse / https://192.168.1.78/
ServerName sambi4.ru
ServerAdmin sambi4@sambi4.ru
DocumentRoot "/var/www/html" #эта строка нужна для того чтобы апач запустился, без нее запуска не будет, т.к. ему нужно на что-то ссылаться.
</VirtualHost>

После завершения создания, не забываем включить наш файл

a2ensite /etc/apache2/sites-available/sambi4.conf

перезапускаем Apache

service apache2 restart

Итак, мы имеем настроеный Reverse Proxy на Apache2, теперь можно его и проверить.
Настройка выпуска и автоматической подписи сертификатов Let's Encrypt смотрите в следующей статье

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *