CentOS/Ubuntu配置Apache作为支持Http/Https的反向代理的方法

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.so
LoadModule 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/


发表回复

邮箱地址不会被公开。 必填项已用*标注