Apache作为功能全面的Web Server软件,可以很简单的配置成一个反向代理或者Load Balancer前端使用,不过在默认情况下,CentOS或者Ubuntu系统从软件仓库安装的版本只能反向代理http协议的网站,不能支持代理https/SSL加密的站点,如果直接修改配置ProxyPass
参数会出现500错误,以下简单介绍一下如何配置Apache使软件支持反向代理Https加密协议的网站。
在CentOS下Yum安装好Apache以后,还需要安装使Apache支持SSL的模块mod_ssl.so
。步骤是先运行
yum install mod_ssl
安装SSL模块,系统会自动在/etc/httpd/conf.d/目录下加入ssl.conf配置文件,这个文件会Include到httpd.conf文件中,里面包含了为Apache服务器启用SSL所需的基本配置,主要是
LoadModule ssl_module modules/mod_ssl.so 加载SSL模块和 Listen 443 让Apache在Https 443端口监听
然后修改/etc/httpd/conf/httpd.conf配置文件,加入以下配置:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.soLoadModule ssl_module modules/mod_ssl.so
ProxyRequests Off(禁用正向代理)
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLProxyEngine on
ProxyPass /maps https://maps.googleapis.com/maps
ProxyPassReverse /maps https://maps.googleapis.com/maps
然后运行service httpd restart重启httpd服务就Okay了。如果是Ubuntu系统以Root用户运行命令:
a2enmod ssl
激活Mod_ssl模块,然后同样修改配置文件再重启apache2服务即可。
参考文章:
1、http://stackoverflow.com/questions/16130303/apache-config-how-to-proxypass-http-requests-to-https
2、http://ihazem.wordpress.com/2011/12/12/installing-mod_ssl-for-apache-on-centos-for-ssl-certificates/
相关文章: