apache做http和https反向代理,apachehttps


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

如果是编译的,./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 webmaster@dummy-host.example.com 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时生成使用的密钥文件。

相关内容

    暂无相关文章