使用 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>
我在 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>