使用 Apache2 的 Wordpress 站点的 ProxyPass 规则

ProxyPass rule for Wordpress Site with Apache2

我在 wordpress.myorg.com 上有一个 wordpress 站点 运行。为了进行身份验证,我必须将其重定向到我的内部服务器 运行 CAS 服务器。

内部服务器没有 DNS 名称。因此,我在 HOST 文件中使用带有 IP 地址的本地 DNS 重定向到 CAS 服务器。所有的东西都是这样正常工作的。

现在我想添加 ProxyPass 规则,以便用户始终只能看到 wordpress.myorg.com。

添加 ProxyPass 规则后,当我点击 wordpress.myorg.com/wp-login.php 它 returns 页面出现 500 内部错误,而不是显示 CAS 登录屏幕。

这是我在 Apache Web 服务器中为 Wordpress 站点创建的虚拟主机条目

<VirtualHost *:80>
    ServerAdmin your_email_address
    ServerName wordpress.myorg.com
    ServerAlias wordpress.myorg.com

    DocumentRoot /var/www/html/wordpress
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/html/wordpress>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    RewriteEngine On
    Options +FollowSymLinks
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?CAS/(.*) https://wordpress.myorg.com/CAS/ [R,NE,L]

</VirtualHost>
<VirtualHost *:443>

    ServerAdmin your_email_address
    ServerName wordpress.myorg.com
    ServerAlias wordpress.myorg.com

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/myorg.com.crt
    SSLCertificateKeyFile /etc/apache2/ssl/myorg.com.key

    ProxyRequests On
    ProxyVia On

    ProxyPass /CAS/ ajp://cas.myorg.com:8009/CAS/
    ProxyPassReverse /CAS/ ajp://cas.myorg.com:8009/CAS/

</VirtualHost>

如能对此提供任何帮助,我们将不胜感激。

谢谢。

知道问题了。我忘记启用 SSLProxyEngine。刚刚启用它,它的工作就像一个魅力。

编辑 HTTPs 部分。

<VirtualHost *:443>

    ServerAdmin your_email_address
    ServerName wordpress.myorg.com
    ServerAlias wordpress.myorg.com

    SSLEngine on
## Added these lines ##
    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on
## -- ##
    SSLCertificateFile /etc/apache2/ssl/myorg.com.crt
    SSLCertificateKeyFile /etc/apache2/ssl/myorg.com.key

    ProxyRequests On
    ProxyVia On

    ProxyPass /CAS/ ajp://cas.myorg.com:8009/CAS/
    ProxyPassReverse /CAS/ ajp://cas.myorg.com:8009/CAS/

</VirtualHost>