【问题标题】:Reverse Proxy works but not Virtual Host in the secondary RPi Web Server反向代理有效,但辅助 RPi Web 服务器中的虚拟主机无效
【发布时间】:2019-11-04 16:10:37
【问题描述】:

我有两个 RPi(3+),都用于 LAMP 网络服务器。他们的关系就像this image

所以,Rpi1 是直接与我的家庭路由器对话的路由器,我设置了反向代理来检索 RPi2 数据。

我的问题是我能够访问两个 RPi1 站点及其域(static1.com 和 wordpress1.com),但两个 RPi2 域(static2.com 和 wordpress2.com)都指向同一个站点(wordpress2.com) .

我认为我在 RPi2 中的虚拟主机设置有一些问题,但还没有找到任何线索...我需要帮助解决这个 apache 设置问题!

这是我在 RPi 1 Apache 服务器中的设置,

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 数据了吗?我错过了什么?

感谢您的帮助!

【问题讨论】:

    标签: apache raspberry-pi3 reverse-proxy virtualhost lamp


    【解决方案1】:

    这是一个简单的修复,只是错过了打开 ProxyPreserveHost

    ProxyPreserveHost Off
    

    ProxyPreserveHost On
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-21
      • 2014-05-01
      • 2016-08-31
      • 2017-07-13
      • 2018-03-23
      • 2021-08-16
      • 2021-01-03
      • 2018-04-05
      相关资源
      最近更新 更多