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 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时生成使用的密钥文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值