Решил я поднять реверс прокси на апаче, да чтобы работала автовыдача сертификатов 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 3650 -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 fullSSLCertificateFile /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 смотрите в следующей статье