apache做http和https反向代理

首先是库之类的环境配置,

如果是编译的,./configure附加--enable-proxy参数,把代理模块编译进来。

然后/usr/sbin/httpd -l,显示

Loaded Modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_proxy.c
proxy_connect.c
proxy_ftp.c
proxy_http.c
prefork.c
http_core.c
.......
带有proxy前缀的模块即表示已经启用代理。
如果是安装好的,就在配置文件http.conf里启用相应的模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

可以通过/usr/sbin/httpd -D DUMP_MODULES,显示

Loaded Modules:

……

proxy_module (shared)
proxy_http_module (shared)
proxy_connect_module (shared)

就可以了。


现在可以开始配置虚拟主机——

如:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

将www.b.org这个网址指向传递到htttp://127.0.0.1:9000这个地址

这样对www.b.org的访问,返回的数据将是来自http://127.0.0.1:9000


配置https访问,即ssl加密访问:

首先要开启apache的ssl访问能力,跟随http://blog.csdn.net/ownfire/article/details/7686746所写配置即可。

NameVirtualHost *:443    或者    NameVirtualHost www.abc.net:443

<VirtualHost www.abc.net:443>
ServerName www.abc.net
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test https://127.0.0.1/
ProxyPassReverse /test https://127.0.0.1/
</VirtualHost>

将对https://www.abc.net/test这个网址的访问指向https://127.0.0.1/,SSLCertificateFile和SSLCertificateKeyFile分别是配置ssl时生成使用的密钥文件。

你可能感兴趣的:(apache,加密,ssl,Module)