2016-03-15 28 views
0

我在wordpress.myorg.com上运行了一个WordPress站点。对于身份验证,我必须将其重定向到运行CAS服务器的内部服务器。Apache2的WordPress站点的ProxyPass规则

内部服务器没有DNS名称。所以,我在HOST文件中使用带IP地址的本地DNS重定向到CAS服务器。所有的事情都以这种方式正确地工作。

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

添加ProxyPass规则后,当我点击wordpress.myorg.com/wp-login.php时,它返回的页面有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/$1 [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> 

任何帮助就这将是明显的。

谢谢。

回答

0

出现问题。我忘记启用SSLProxyEngine。只是启用它,它的工作就像一个魅力。

编辑HTTP部分。

<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>