Apache启用mod_proxy做正向代理、反向代理(详细版)
Apache启用mod_proxy做正向代理、反向代理(详细版)
如果没有apache没有安装proxy模块,可以不用重新编译添加模块。
cd /home/cpeasyapache/src/httpd-2.2.17/modules/proxy
/usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c (ps 必须2c一起编译,不然会报错)
/usr/local/apache/bin/apxs -c -i mod_proxy_http.c proxy_util.c
apache提供了mod_proxy模块用于提供代理服务,能够支持的包括正向代理、反向代理、透明代理、缓存、负载均衡,HTTP代理、FTP代理、SSL代理等若干强大的功能。
通常我们使用的比较多的,是正向代理。也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。
配置正向代理非常简单:
首先在apache上启用mod_proxy模块,需要注意的是,如果在apache-2.2上,则还需要加载名为mod_proxy_http的模块。因为2.2系列把代理功能都拆分成N个小模块了。
打开apacheconf,加入如下几行:(全局配置)
ProxyRequests On
ProxyVia On
Order deny,allow
Deny from all
Allow from all
然后保存退出,重启加载apache服务:/etc/init.d/httpd restart或者做graceful也可以。 现在即可在浏览器的网络连接属性框中,填写上your_apache_server_ipip地址,端口是80,开始用代理了。
使用apache提供的代理,也可以加身份验证,或者设置ACL来限制客户端来源等。这些配置就和普通的apache站点配置一样。
配置反向代理就是个非常有用的功能。例如从某地访问google太慢,但是机房服务器上很快,则可在服务器上设置反向代理连接到google,也就是把google映射到服务器上来访问。
然后新建一个网站,即创建一个标准的配置段。这里我们将站点/google目录设置为google的反向代理。在这段里边,加入下边一内容:
ProxyRequests Off
ProxyPass /google le/
#ProxyPassReverse /google le/
然后保存配置文件重新启动apache。现在即可使用浏览器来访问我的网站的/google目录。当打开这个目录的时候,会发现页面是google。点击google的下级页面,都可以正常的打开访问,而此时浏览器中的代理服务器并未设置任何内容——这就是反向代理。
通过反向代理,我们可以将web服务器放置在防火墙后,在web服务器前端使用mod_proxy配置反向代理,并打开apachemod_cache缓存模块,更可以极大的提高对静态内容的访问性能。
RewriteRule指令中使用[P]标记也可以:
RewriteEngine On
RewriteRule ^/google/(.*) le/$1 [P]
首先要做的事情是: 访问域名xxx -> 通过 代理服务器B -> 访问 服务器C
首页把域名 ingprincess morningprincess指到自己的vps服务器确认自己的服务器中的Apache已经启用了proxymodproxyhttp_mod,
sudo /etc/init.d/apache2 restart
然后在apache中增加站点
文件配置如下

ServerAdmin webmaster@example
ServerName morningprincess
ingprincess
ProxyRequests Off


Order deny,allow
Allow from all

ProxyPreserveHost on
ProxyPass / le/
ProxyPassReverse / le/

然后:
sudo /etc/init.d/apache2 reload
这样你就可以使用你的域名访问外面的服务器了
———————————————————————-
apache增加mod_cache模块参考链接:
v/Apache/ApacheMenu/mod/mod_cache.html
hi.baidu/houdelei250/blog/item/b0d83145089f428eb2b7dcda.html
apache mod_cache模块的编译
apache mod_cache /usr/local/apache/bin/apachectl restart
apache出现以下信息:
Cannot load /usr/local/apache/modules/mod_cache.so into server: /usr/local/apache/modules/mod_cache.so: undefined symbol: cache_generate_key_default
正规解决方案:
modules/cache下面有很多的.c文件
mod_cache.c 编译得到mod_cache.so 主要用来控制整个apachecache功能。
mod_file_cache.c,mod_mem_cache.c,mod_disk_cache.c这个三个文件编译后得到各自的cache支持模块。
[root@zhang2 cache]# find . -name “*cache*.c” -print
./cache_storage.c
./cache_pqueue.c
.
/mod_cache.c
./cache_hash.c
./mod_mem_cache.c
./mod_file_cache.c
./mod_disk_cache.c
./cache_util.c
./cache_cache.c
mod_cache.c还需要其他的程序来进行工作,包括cache_*.c这些文件。因此apxs动态加载一个模块的时候,需要把这些文件和mod_cache.c 一起编译:
编译mod_cache:
/usr/local/apache/bin/apxs -c -i -a mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c
编译mod_disk_cache
/usr/local/apache/bin/apxs -c -i -a mod_disk_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c
编译mod_mem_cache
/usr/local/apache/bin/apxs -c -i -a mod_mem_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c
至此,apache已经支持缓存了,再加上缓存配置就Ok!!!
1. 修改f
示例:
LoadModule cache_module modules/mod_cache.so

#LoadModule disk_cache_module modules/mod_disk_cache.so
#如果你想使用mod_disk_cache代替mod_mem_cache的话,
#那么就取消上面的注释,并将下面的LoadModule行加上注释

CacheRoot /cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3

LoadModule mem_cache_module modules/mod_mem_cache.so

CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048

#在充当代理的时候,不缓存update-list下的内容
CacheDisable security.update.server/update-list/

2. 创建缓存目录
#mkdir /var/www/cacheroot
#chown root.apache /var/www/cacheroot
#chmod 775 /var/www/cacheroot
3. 测试
重启apache,访问网站,会在/var/www/cacheroot下看到一堆文件夹。
Apache2缓存压缩模块
Apache2参考文档v/Apache/ApacheMenu/index.html
编译模块
cd httpd-2.2.11/modules
mod_expires.c mod_headers位于metadata目录下
mod_deflate.c 位于filters目录下
apxs -ica mod_deflate.c 生成so文件
#f下添加:
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
modules/cache下面有很多的.c文件,大致用途如:
mod_cache.c 编译得到mod_cache.so 主要用来控制整个apachecache功能。
mod_file_cache.c,mod_mem_cache.c,mod_disk_cache.c这个三个文件编译后得到各自的cache如何设置代理服务器支持模块。
mod_cache.c还需要其他的程序来进行工作,包括cache_*.c这些文件。因此apxs动态加载一个模块的时候,需要把这些文件和mod_cache.c 一起编译:perl /usr/local/apache2/bin/apxs -cia mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c
安装时编译:
# tar –zxvf httpd-2.0.
# cd httpd-2.0.49
#./configure –enable-cache –enable-disk-cache –enable-mem-cache
#mke
#make install

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。