Обратный прокси работает, но не виртуальный хост на вторичном веб-сервере RPi - PullRequest
0 голосов
/ 21 июня 2019

У меня есть два RPi (3+), оба используются для веб-сервера LAMP. И их отношение как это изображение

Итак, Rpi1 - это тот, кто напрямую общается с моим домашним маршрутизатором, и я настроил обратный прокси-сервер для получения данных RPi2.

Моя проблема в том, что я смог получить доступ к обоим сайтам RPi1 с их доменами (static1.com и wordpress1.com), но оба домена RPi2 (static2.com и wordpress2.com) ведут на один и тот же сайт (wordpress2.com) .

Я предполагаю, что у моей настройки виртуального хоста в RPi2 есть какая-то проблема, но пока не могу найти подсказку ... Мне нужна помощь в решении этой проблемы настройки Apache!

Вот мои настройки на сервере Apache RPi 1,

Настройка static2.com:

pi@cloelee:/etc/apache2/sites-available $ cat static2.com.conf
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName static2.com
    ServerAlias www.static2.com
    SSLProxyEngine on
    ProxyPass / http://192.168.1.18/
    ProxyPassReverse / http://192.168.1.18/
    ProxyPreserveHost Off
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName static2.com
    ServerAlias www.static2.com
    SSLProxyEngine on
    ProxyPass / http://192.168.1.18/
    ProxyPassReverse / http://192.168.1.18/
    ProxyPreserveHost Off

    SSLCertificateFile /etc/letsencrypt/live/static2.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/static2.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>
</IfModule>

Настройка wordpress2.com:

pi@cloelee:/etc/apache2/sites-available $ cat wordpress2.com.conf
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName wordpress2.com
    ProxyPass / http://192.168.1.18/
    ProxyPassReverse / http://192.168.1.18/
    ProxyPreserveHost Off
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName wordpress2
    ProxyPass / http://192.168.1.18/
    ProxyPassReverse / http://192.168.1.18/
    ProxyPreserveHost Off
</VirtualHost>

А это моя установка в RPi2 Apache Server,

static2.com параметр:

pi@kyongoh:/etc/apache2/sites-available $ cat static2.com.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName static2.com
    ServerAlias www.static2.com
    DocumentRoot /var/www/static2.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on

    RewriteCond %{HTTPS} !on
    RewriteCond %{HTTP_HOST} ^(www\.)?static2\.com$
    RewriteRule (.*) https://static2.com/$1 [L,R,NE]
</VirtualHost>
pi@kyongoh:/etc/apache2/sites-available $ cat static2.com-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName static2.com
    ServerAlias www.static2.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/static2.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/static2.com/privkey.pem
</VirtualHost>
</IfModule>

настройка wordpress2.com:

pi@kyongoh:/etc/apache2/sites-available $ cat wordpress2.com.conf
<VirtualHost *:80>
    <Directory "/var/www/wordpress2.com">
        AllowOverride All
    </Directory>

    ServerName wordpress2.com
    ServerAdmin webmaster@local_wordpress
    DocumentRoot /var/www/wordpress2.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName wordpress2.com
    ServerAdmin webmaster@local_wordpress
     DocumentRoot /var/www/wordpress2.com
</VirtualHost>

Как вы понимаете, на wordpress2.com еще нет SSL, а на static2.com. Вы понимаете, почему оба домена RP2 запрашивают данные WordPress2? что я пропустил?

Спасибо за помощь!

1 Ответ

0 голосов
/ 26 июня 2019

Это было простое исправление, просто не удалось включить ProxyPreserveHost на

ProxyPreserveHost Off

до

ProxyPreserveHost On
...