威斯尼斯人官网 2

Apache做反向代理服务器

2 反向代理:
客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)

Apache代理分为正向代理和反向代理

在Ubuntu 13.10 下安装支持SSL的Apache

适用于: ①局域网的代理服务器(一般是网关,相当于squid的一般用法)

威斯尼斯人官网 1

适用于:
①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标

简单示意图如下

1 正向代理:
客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器)

②访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理

再谈伪装Apache版本防止入侵Web服务器

1 正向代理:
客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代…

本例中
机器192.168.0.114是我们的reverse proxy server
apache/2.0.63运行在其80端口
上面有两个域名的虚拟主机
www.a.org
www.b.org
要实现的效果是:
访问 www.a.org 即相当于访问另一台机器192.168.0.115
访问 www.b.org 即相当于访问本机的9000端口
apache的proxy功能由其proxy模块实现.加载模块有两种方式:静态和动态,现分别说明:
一 静态加载
静态加载,在编译apache时候编译进去,编译参数如下:
“./configure”
“-prefix=/usr/local/apache3”
“–enable-so”
“–enable-rewrite”
Apache做反向代理服务器。”–with-mpm=prefork”
“–enable-proxy” (这个参数即是代理模块启用)
安装完成后查看模块列表
/usr/local/apache3/bin/httpd -l
显示
Compiled in 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
…….
编辑配置文件 httpd.conf
在虚拟主机部分
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName www.a.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /
ProxyPassReverse /
</VirtualHost>
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /
ProxyPassReverse /
</VirtualHost>
二 动态加载
动态加载:编译进一个已经装好了的apache中(编译为dso模块)
已经装好的apache在 /usr/local/apache2
进入apache源码的模块目录进行编译
cd httpd-2.0.63/modules/proxy/
/usr/local/apache2/bin/apxs -c -i -a mod_proxy.c proxy_connect.c
proxy_http.c proxy_util.c
从输出里面看到apache的modules目录下已经产生了mod_威斯尼斯人官网,proxy.so,且已经在httpd.conf中激活了
cd /usr/local/apache2/conf/
ls ../modules/ 看到确实有mod_prxoy.so
编辑配置文件
vi httpd.conf
修改如下
加载模块
LoadModule proxy_module modules/mod_proxy.so
(这句是编译激活时产生的)
LoadModule proxy_http_module modules/mod_proxy.so
(这句是要手动添加的)
虚拟主机的部分加上
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName www.a.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /
ProxyPassReverse /
</VirtualHost>
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /
ProxyPassReverse /
</VirtualHost>
重启apache生效
注:
如果不加LoadModule proxy_http_module
modules/mod_proxy.so,则浏览器页面打不开,页面显示
Forbidden
You don’t have permission to access / on this server.
日志acess_log里面显示
192.168.0.28 – – [03/Jun/2009:16:16:27 +0800] “GET
/?sessionId=4293567494722637330&rand=1244014624405&CONTEXT=0&page=com.othe
r.AjaxWhoWhatUpdate&xrand=1244016991554&wwRandId=1244014624405&wwBugId=2341&wwType=View
HTTP/1.1″ 403 315
或者
192.168.0.28 – – [03/Jun/2009:17:10:32 +0800] “GET / HTTP/1.1” 403
315
即403错误
日志error_log里面显示
[Wed Jun 03 17:08:46 2009] [warn] proxy: No protocol handler was
valid for the URL /. If you are using a DSO version of mod_p
roxy, make sure the proxy submodules are included in the configuration
using LoadModule.

企业Shell脚本分析及切割Apache日志实战

Apache Python 模块mod_wsgi的编译安装

威斯尼斯人官网 2

②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000

日志分析工具Awstats实战之Apache篇-多站点日志分析

发表评论

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

相关文章