搜档网
当前位置:搜档网 › Apache启用mod_proxy做正向代理、反向代理(详细版)

Apache启用mod_proxy做正向代理、反向代理(详细版)

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 必须2个c一起编译,不然会报错)

/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个小模块了。

打开apache的conf,加入如下几行:(全局配置)

ProxyRequests On

ProxyVia On

Order deny,allow

Deny from all

Allow from all

然后保存退出,重启加载apache服务:/etc/init.d/httpd restart或者做graceful也可以。现在即可在浏览器的网络连接属性框中,填写上your_apache_server_ip的ip地址,端口是80,开始用代理了。

使用apache提供的代理,也可以加身份验证,或者设置ACL来限制客户端来源等。这些配置就和普通的apache站点配置一样。

配置反向代理就是个非常有用的功能。例如从某地访问google太慢,但是机房服务器上很快,则可在服务器上设置反向代理连接到google,也就是把google映射到服务器上来访问。

然后新建一个网站,即创建一个标准的配置段。这里我们将站点/google目录设置为google的反向代理。在这段里边,加入下边一内容:

ProxyRequests Off

ProxyPass /google https://www.sodocs.net/doc/bb18618224.html,/

#ProxyPassReverse /google https://www.sodocs.net/doc/bb18618224.html,/

然后保存配置文件重新启动apache。现在即可使用浏览器来访问我的网站的/google目录。当打开这个目录的时候,会发现页面是google。点击google的下级页面,都可以正常的打开访问,而此时浏览器中的代理服务器并未设置任何内容——这就是反向代理。

通过反向代理,我们可以将web服务器放置在防火墙后,在web服务器前端使用mod_proxy配置反向代理,并打开apache的mod_cache缓存模块,更可以极大的提高对静态内容的访问性能。

在RewriteRule指令中使用[P]标记也可以:

RewriteEngine On

RewriteRule ^/google/(.*) https://www.sodocs.net/doc/bb18618224.html,/$1 [P]

首先要做的事情是: 访问域名xxx -> 通过代理服务器B -> 访问服务器C

首页把域名https://www.sodocs.net/doc/bb18618224.html, 和https://www.sodocs.net/doc/bb18618224.html,指到自己的vps服务器确认自己的服务器中的Apache已经启用了proxymod和proxyhttp_mod,

sudo /etc/init.d/apache2 restart

然后在apache中增加站点

文件配置如下

ServerAdmin webmaster@https://www.sodocs.net/doc/bb18618224.html,

ServerName https://www.sodocs.net/doc/bb18618224.html,

ServerAlias https://www.sodocs.net/doc/bb18618224.html,

ProxyRequests Off

Order deny,allow

Allow from all

ProxyPreserveHost on

ProxyPass / https://www.sodocs.net/doc/bb18618224.html,/

ProxyPassReverse / https://www.sodocs.net/doc/bb18618224.html,/

然后:

sudo /etc/init.d/apache2 reload

这样你就可以使用你的域名访问外面的服务器了———————————————————————-

apache增加mod_cache模块参考链接:

https://www.sodocs.net/doc/bb18618224.html,/Apache/ApacheMenu/mod/mod_cache.html

https://www.sodocs.net/doc/bb18618224.html,/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 主要用来控制整个apache的cache功能。

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. 修改httpd.conf

示例:

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 http://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参考文档https://www.sodocs.net/doc/bb18618224.html,/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文件

#vi httpd.conf下添加:

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 主要用来控制整个apache的cache功能。

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.49.tar.gz

# cd httpd-2.0.49

#./configure –enable-cache –enable-disk-cache –enable-mem-cache

#mke

#make install

Apache 从2.0开始就已经可以使用缓存模块了,不过在2.0的时候还是实验性的,到了2.2已经完全可以放心的使用。Apache的缓存实现主要依靠mod_cache、mod_disk_cache、mod_file_cache 及mod_mem_cache。只需在配置编译的时候加上参数:–enable-cache、–enable-disk-cache、

–enable- file-cache、–enable-mem-cache 即可。

关于Apache 的编译安装本文就不再说了,可以参考以前的文章。这里主要介绍一下如何配置使用Apache 的缓存功能。

具体来说,Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由mod_disk_cache 实现,另一种是使用内存缓存,由mod_mem_cache 实现,不过它们都是依赖mod_cache 模块的,

mod_cache 模块提供了一些缓存配置的指令供它们使用,而mod_file_cache 模块是搭配

mod_mem_cache 模块使用的,下面分别进行介绍。

1、基于硬盘文件的缓存

基于硬盘文件存储的缓存由mod_disk_cache 模块实现,先看个简单的配置例子:

CacheDefaultExpire 86400

CacheEnable disk /

CacheRoot /tmp/apacheCache

CacheDirLevels 5

CacheDirLength 5

CacheMaxFileSize 1048576

CacheMinFileSize 10

把上面的配置加到Apache 的httpd.conf 文件中,如果缓存相关的模块都已经编译进了Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:

CacheDefaultExpire:设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效

CacheEnable:启用缓存,第1个参数是缓存类弄,这里当然是disk了,第2个参数是缓存路径,指的是url 路径,这里是缓存所有的东西,直接写上―/‖即可,如―/docs‖则只缓存/docs 下的所有文件CacheRoot:缓存文件所在的目录,运行Apache 的用户(如daemon 或nobody)要能对其进行读写,如果不清楚的话可以直接设置成777,请手动建立该目录并设置好访问权限CacheDirLevels:缓存目录的深度,默认是3,这里设置为5

CacheDirLength:缓存目录名的字符长度,默认是4,这里设置为5

CacheMaxFileSize 和CacheMaxFileSize:缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为1M 和10bytes

基于硬盘文件存储的文件基本上就这些内容,设置好后重启Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到Apache 自动建立的一些目录和缓存的数据文件。

2、基于内存的缓存

基于内存的缓存主要由mod_mem_cache 模块实现,还是看个简单的配置吧,这样比较直观:-)

CacheEnable mem /

MCacheMaxObjectCount 20000

MCacheMaxObjectSize 1048576

MCacheMaxStreamingBuffer 65536

MCacheMinObjectSize 10

MCacheRemovalAlgorithm GDSF

MCacheSize 131072

简单说一下上面一些指令的意思:

CacheEnable:启用缓存,使用基于内存的方式存储

MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000 MCacheMaxObjectSize:单个缓存对象最大为1M,默认是10000bytes MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少的将要被缓存对象的尺寸,这里设置为65536,该值通常小于100000或MCacheMaxObjectSize 设置的值MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是GDSF,还有一个是LRU,可以查一下Apache 的官方文档,上面有些介绍

MCacheSize:缓存数据最多能使用的内存,单位是kb,默认是100kb,这里设置为128M

保存重启Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。

3、注意事项

使用缓存需要注意如下事项:

要使用缓存,必须使用指令CacheEnable 启用它,目前可用的缓存类型为disk 或mem,禁止缓存可以使用CacheDisable,如CacheDisable /private

待缓存的URL 返回的状态值必须为:200、203、300、301 或410

URL 的请求方式必须是GET 方式

发送请求时,头部中包含―Authorization: ‖的字符串时,返回的内容将不会被缓存

URL 包含查询字符串,如问号?后的那些东西,除非返回的内容包含―Expires:‖,否则不会被缓存

如果返回的状态值是200,则返回的头部信息必须包含以下的一种才会被缓存:Etag、Last-Modified、Expires,除非设置了指令CacheIgnoreNoLastMod On

如果返回内容的头部信息―Cache-Control:‖中包含―private‖,除非设置了指令CacheStorePrivate On,否则不会被缓存

如果返回内容的头部信息―Cache-Control:‖中包含―no-sotre‖,除非设置了指令CacheStoreNoStore On,否则不会被缓存

如果返回内容的头部信息―Vary:‖中包含了―*‖,不会被缓存

4、其它一些指令的介绍

如果你的网站有几个文件的访问非常频繁而又不经常变动,则可以在Apache 启动的时候就把它们的内

容缓存到内存中(当然要启用内存缓存系统),使用的是mod_file_cache 模块,具体如下:

有多个文件可以用空格格开

MMapFile /var/www/html/index.html /var/www/html/articles/index.html

上面是缓存文件的内容到内存中,除此之外,还可以只缓存文件的打开句柄到内存中,当有请求进来的时候,Apache 直接从内存中获取文件的句柄,返回内容,和MMapFile 指令很像,具体如下:CacheFile /var/www/html/index.html /var/www/html/articles/index.html

上面两个指令所缓存的文件如果有修改的话,必须重启Apache 或使用graceful 之类的方式强制使Apache 更新缓存数据,否则当用户访问的时候获取的不是最新的数据。

有时候需要根据某些特殊的头部信息来决定是否进行缓存,则可以使用如下指令:

当头部信息中包含Set-Cookie 时则跳过不进行缓存操作

CacheIgnoreHeaders Set-Cookie

有时候需要缓存的时候跳过URL 中的查询字符串?使用如下指令:

CacheIgnoreQueryString On

Apache 的缓存系统不仅可以缓存服务器本身的文件,也可以缓存通过代理得到的内容,对了,Apache 可以像Squid一样做代理,而且做的还不错,下篇文章就介绍一下Apache 的代理功能吧。善用Apache 的缓存功能,可以让你的网站速度提升不少。做为一个网站来说,虽然可用的各种缓存方案很多,但在Web 服务器层做缓存的效率还是很值得一试的。

更多信息请参考:https://www.sodocs.net/doc/bb18618224.html,/docs/2.2/caching.html

一个httpd.conf的配置例子:

#一个连接的最大请求数量

MaxKeepAliveRequests 10000

#NT环境,只能配置这个参数来提供性能

#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程ThreadsPerChild 1900

#每个子进程能够处理的最大请求数

MaxRequestsPerChild 10000

LoadModule cache_module modules/mod_cache.so

LoadModule disk_cache_module modules/mod_disk_cache.so

LoadModule mem_cache_module modules/mod_mem_cache.so

CacheForceCompletion 100

CacheDefaultExpire 3600

CacheMaxExpire 86400

CacheLastModifiedFactor 0.1

CacheEnable disk /

CacheRoot c:/cacheroot

CacheSize 327680

CacheDirLength 4

CacheDirLevels 5

CacheGcInterval 4

CacheEnable mem /

MCacheSize 8192

MCacheMaxObjectCount 10000

MCacheMinObjectSize 1

MCacheMaxObjectSize 51200

—————————————————————————————————–

一、前言

當人們對於網路的需求愈來愈高,網路頻寬的要求也日漸增加,在網路初期,有個文字模式的BBS 或GOPHER 已是非常今人興奮的事情,發展至WINDOW介面時,魔賽克、NETSCAPE等瀏覽器在網路上

的應用,讓我們可以取得更豐富的資料,而今,上網看電視、聽廣播都是輕而易舉的事,但是對於網路傳輸流量也愈來愈大,所以,善用網路資源的同時,也更該節省網路資源。

二、Proxy 的概念

在安裝之前我們先釐清一個有關PROXY 的概念,事實上PROXY SERVER 有很多種類,如IP Proxy 、Mail Proxy、Proxy Caching …等,而我們一般所稱的Proxy是指Proxy Caching。

如果校園網路內有了Proxy伺服器,且所有CLIENT端的電腦都連接到Proxy伺服器上,當網域內有一台機器的瀏覽器透過Proxy Server瀏覽過某個網站上的網頁後,這個被瀏覽過的網站資料就被複製一份到Proxy Server的cache (快取)空間裡,當其他使用者也要瀏覽這個已瀏覽過的網站時,就不用再透過對外的線路傳輸網頁資料,而是直接從Proxy Server的cache裡讀取網頁資料,所以Proxy Server 可以大大的節省頻寬與加快用戶端讀取資料速度。

其實Apache 也有Proxy 的功能,早期的CERN 也有相同的功能,但是他們主要功能是WWW SERVER,所以使用的人很少。在Unix like 系統中,Squid是使用率最廣的,因為Squid Proxy Server 是專為caching所設計的,Squid有一套自己的Cache階層體系,簡單的說就是Proxy Server間的關係有父(parent)、子(child)、兄弟姊妹(sibling)三種關係存在。善用這種階層的架構可以降低server 的負載和資料傳輸的速度。

三、安裝Squid

如果我們在安裝RedHat + CLE 時,安裝的選項是[Everything],那Squid 就已經安裝在系統中,只是還沒被啟動而以。如果我們可以在/etc/rc.d/init.d的目錄下看到squid 這個檔案,而且在

/etc/squid 下有squid.conf 的設定檔,那麼我們可以確定squid 已經安裝好了,只是尚未被啟動而以,如果不是上述的情形,我們也可以自行安裝或昇級,首先你可能要掛上CD-ROM或者到大一點的FTP 站下載新的套件,再用RPM 安裝,可以選擇i386的檔案直接安裝,或者是用src.rpm 的檔案,先自己rebuild ,再安裝。

# rpm –Uhv squid-2.2*

# rpm –rebuild –target i686 squid-2.3.S

安裝完當然可以馬上啟動,或者利用setup、ntsysv來設定開機時,讓squid啟動。但是我們對cache 的目錄還未規劃,所以我們必須對squid.conf做一些調整再行啟動。

四、squid.conf 的基本設定

1. 規劃CACHE 目錄

預設值是cache_dir /var/spool/squid 100 16 256

也就是在/var/spool/squid 中增加16×256個目錄,而SQUID 就利用這4096個目錄來存放100MB 的CACHE 資料。而在實際的應用上,100MB 的空間實在太少了! 所以我們可以依SERVER 上的空間來調整CACHE 的大小,另外16×256 這個目錄大小我們也可依server 上的實體記憶體和cache 目錄大小來調整,原則上,除非記憶體大於256 MB,CACHE 的目錄也需要到10 GB 以上,否則16×256 或64×256 就可以了。

2. 記憶體設定

預設值是#cache_mem 8 MB

一般來說大概是實際記憶的1/3 ,如果只是單純做為PROXY ,則可以調高為1/2 。

3. 開放存取設定—原始設定中只允許localhost本身使用,所以我們可以把localhost 的IP 範圍改成允許使用的IP範圍。

原來=> acl localhost src 127.0.0.1/255.255.255.255

改成=> acl localhost src 163.17.169.0/255.255.255.0

或者

原來=> httpd deny all

改成=> httpd allow all (安全性較低,不建議)

五、啟動Squid

啟動/etc/rc.d/init.d/squid start ;(啟動和停止的訊息都在/var/log/squid/cache.log)

停止/etc/rc.d/init.d/squid stop

因為是以rpm 安裝,所以在啟動時,程式(shell script)會自動偵測目錄是否存在,所以要改變cache 目錄,只要在squid.conf 設定好,重新啟動squid 就可以!但要事先建立存放的主目錄,而且要注意目錄的擁有者。

六、進階設定

1. parent 和sibling

若您要設定擷取上一層的Proxy Server資料,如139.175.159.98 (seed net 提供給本縣的proxy server) ,請在:

#cache_peer hostname type 3128 3130之下加入:

cache_peer 139.175.159.98 parent 3128 3130 no-query no-netdb-exchange no-digest

若您要設定同層的Proxy Server為Sibling關係,如:163.17.169.50、163.17.169.52,則加入:

cache_peer 163.17.169.50 sibling 3128 3130 proxy-only

cache_peer 163.17.169.52 sibling 3128 3130 proxy-only

[參數說明]

cache_peer:用來指定擷取快取Proxy的主機。

hostname:是指快取Proxy的主機名稱,也可用ip 。

type:用來指定擷取來源快取Proxy主機的型態,有:parent(上一層)、sibling(同一層)兩種。3128:是http_port。用來取回所需的cache資料。

3130:是icp_port。用來詢問Server有沒有所需要的資料。

no-query:不做詢問動作,直接擷取資料。(用於parent-chile關係)

no-netdb-exchange:proxy server之間彼此部交換訊息。

no-digest:proxy server之間不建立Digest Table。(只用於Sibling)

proxy-only:直接讀取對方cache資料,而不存入本機。

2. 增加服務的速度

Squid Proxy內定的DNS查詢程式的數量是5,

# ps aux |grep squid

root 4388 0.0 0.3 3320 840 ? S 16:29 0:00 squid -D

squid 4390 0.0 1.7 6020 4396 ? S 16:29 0:00 (squid) -D

squid 4391 0.0 0.2 1476 700 ? S 16:29 0:00 (dnsserver)

squid 4392 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)

squid 4393 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)

squid 4394 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)

squid 4395 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)

從上列中您可發現第一個主服務是由root身分啟動,其他六個則是由squid身分啟動。而其中五個是dnsserver,我們可以增加dnsserver的數目來增加服務的速度。

#dns_children 5,改為

dns_children 24 ;最大DNS查詢程式數量為32

3. LOG 檔案的處理

# logfile rotate 0

logfile_rotate 1

此設定必須配合crontab 執行/usr/sbin/squid -k rotate,例如我但可以設定在每天的零點二分做一次log 檔的備份,再利用pwebstats 統計。

4.. 阻擋不良網站

# 不想讓學生玩線上遊戲或者上到有關sex 字眼的網站,連在搜尋的地方打上sex 也擋下來喔!! # 定義game這個關鍵字所包含的站名,如sex ,部份即可

acl game url_regex https://www.sodocs.net/doc/bb18618224.html,/game sex idolink

# 定義sex 這個關鍵字所包含的網站

acl sex dstdomain https://www.sodocs.net/doc/bb18618224.html,

# 攔下game , sex 所定義的網站

httpd deny game sex

在squid 中,應用acl 的參數,我們可以過濾網站內容,設定的方式也很多種,有興趣可以多研究squid.conf 中的範例。

七、統量統計

下載以下兩個檔案

fly-1.6.5.Linux-2.1.125-i686.tar.gz

pwebstats-1.3.7.tar.gz

以下# 號後是應輸入的指令

# tar xzvf fly-1.6.5.Linux-2.1.125-i686.tar.gz

# cd fly-1.6.5

# cp fly /usr/sbin ;放置fly到可執行路徑,原位置也可以,

# mv pwebstats-1.3.7.tar.gz /home/httpd/html

# cd /home/httpd/html

# tar zxvf pwebstats-1.3.7.tar.gz

# cd pwebstats/conf

# pe2 squid-proxy.conf .

1. 修改squid-proxy.conf檔裡幾項項目:(以下各行中,# 為註解)

# pwebstats configuration file for http server

#

# Unique nickname for server.

# use only a-z, A-Z and _

# e.g. server:proxy

server:https://www.sodocs.net/doc/bb18618224.html,.TW ;填入Server 名稱

# Header for index page.

# e.g. Server_header:The TelDem Enterprises Proxy Server

Server_header:台中縣XX國小Proxy Server流量分析

# Location of latest log file

logfile:/var/log/squid/access.log;如果有輪換檔,就指定輪換檔access.log.0路徑# Location for the output of pwebstats.

# e.g. outdir:/home/servers/http/teldem/proxy-usage

outdir:/home/httpd/html/usage;統計結果的輸出網頁路徑,事先mkdir

# directory containing GIF templates

# e.g. templates:/home/servers/http/pwebstats/templates

templates:/home/httpd/html/pwebstats/templates

# Stats collection interval

# can be one of daily, weekly, monthly, quarterly

interval:daily ; 統計的週期

# Location of ?fly‘

# e.g. fly_prog:/home/servers/http/pwebstats/fly/fly

fly_prog:/usr/sbin/fly ;指定fly程式路徑

12. 執行 ./pwebstats -c squid-proxy.conf即可產生流量分析網頁及圖表

13. 為了每天能自動對access.log.0進行分析產生流量分析網頁及圖表,您必須修改crontab,請執行#crontab -u root -e,在原內容上加入敘述:(設定在做完log輪換檔後執行,每日清晨零點十分整做流量分析)

5 0 * * * /usr/sbin/squid -k rotate ;

10 0 * * * /home/httpd/html/pwebstats/pwebstats -c

/home/httpd /html/pwebstats/conf/squid-proxy.conf;絕對路徑

14. 在瀏覽器的URL位址輸入:http://hostname/usage/,即可顯示流量分析結果,如下圖顯示:

Internet Access Monitor for Squid

Firewall Analyzer

https://www.sodocs.net/doc/bb18618224.html,/manageengine/products/firewall/help/index.html

面向缓存的站点规划1–mod_proxy

——————————————————————————————————————————–

一个利用APACHE的mod_proxy对多个站点进行做WEB加速http acceleration方案:

原先一个站点的规划可能是这样的:

*.*.*.1 https://www.sodocs.net/doc/bb18618224.html,

*.*.*.2/*.*.*.3/*.*.*.4/*.*.*.5 https://www.sodocs.net/doc/bb18618224.html,

*.*.*.6 https://www.sodocs.net/doc/bb18618224.html,

… …

而在面向缓存服务器的设计中:所有站点都通过外部DNS指向到同一个IP(或者2台到3台):

*.*.*.100/101(举例)

工作原理:

外部请求过来时,根据配置文件设置缓存进行转向解析。这样,服务器请求就可以转发到我们指定的内部地址上。

在处理多虚拟主机转向方面:mod_proxy比squid要简单一些:可以把不同服务转向后后台多个IP的不同端口上。

而squid只能通过禁用DNS解析,然后根据本地的/etc/hosts文件根据请求的域名进行地址转发,后台多个服务器必须使用相同的端口。

但是就性能上来说,专业级别的squid要比mod proxy要优秀的多。

今天先做出apache mod_proxy的文档。明天应该会做出squid对多个站点进行web加速的文档

基于Apache mod_proxy的反向代理缓存加速实现:

Apache包含了mod_proxy模块,可以用来实现代理服务器,针对后台服务器的反向加速

注:Apache 2.x中mod_proxy已经被分离成mod_proxy和mod_cache:同时mod_cache有基于文件和基于内存的不同实现

实战测试1:

环境:一台sun ultra 60 for solaris 8 运行了bind 9 ,在上面添加了几个虚拟ip分别对应的地址是:https://www.sodocs.net/doc/bb18618224.html, 10.1.1.201

https://www.sodocs.net/doc/bb18618224.html, 10.1.1.201

https://www.sodocs.net/doc/bb18618224.html, 10.1.1.202

试验计划:先安装apache1.3.31,用来配置前面的cache server,然后再安装一个apache1.3.31,

用来配置后面真正的web server。放些静态页面,然后做测试,得出结论。

1. 编译apache(用来做cache)

./configure –prefix=/usr/local/apache-front –enable-shared=max –enable-module=most && make && make install (请注意参考下面再进行操作)

编译时的错误:

1. ld.so.1: ./gen_test_char: fatal: libexpat.so.0: open failed: No such file or directory

解决:

bash-2.03# pkginfo|grep expat

application SMCexpat expat

然后察看/usr/local/lib发觉目录下有libexpat.so.0这个文件因此只要:

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

编译可以完成但是启动apache的时候却报错:

Syntax error on line 206 of /usr/local/apache-front/conf/httpd.conf:

Cannot load /usr/local/apache-front/libexec/mod_env.so into server: ld.so.1:

/usr/local/apache-front/bin/httpd: fatal: relocation error: file

/usr/local/apache-front/libexec/mod_env.so: symbol ap_palloc: referenced symbol not found

../bin/apachectl start: httpd could not be started

如果从配置文件把mod_env.so注释掉又会在模块env_module上报同样错误,看来不能用DSO模式编译

重新编译安装:

./configure –prefix=/usr/local/apache-front –enable-module=most && make && make install 2. 编译安装web server的apache:

./configure –prefix=/usr/local/apache-back && make && make install

3. 进行相应的配置:

创建/var/www/proxy目录,并且将权限设为nobody:nobody

修改apache-front的httpd.conf:

ServerAdmin admin@https://www.sodocs.net/doc/bb18618224.html,

ServerName https://www.sodocs.net/doc/bb18618224.html,

ProxyPass / https://www.sodocs.net/doc/bb18618224.html,:8080/

ProxyPassReverse / https://www.sodocs.net/doc/bb18618224.html,:8080/

# cache dir root

CacheRoot ―/var/www/proxy‖

# max cache storage

CacheSize 500M

# hour: every 4 hour

CacheGcInterval 4

# max page expire time: hour

CacheMaxExpire 240

# Expire time = (now – last_modified) * CacheLastModifiedFactor CacheLastModifiedFactor 0.1

# defalt expire tag: hour

CacheDefaultExpire 1

# force complete after precent of content retrived: 60-90%

CacheForceCompletion 80

CustomLog /usr/local/apache-front/logs/access_log combined

修改apache-back的httpd.conf

Listen 10.1.1.202:8080

ServerAdmin root@https://www.sodocs.net/doc/bb18618224.html,

ServerName https://www.sodocs.net/doc/bb18618224.html,

基本配置就这些,如果有其他要求可以根据实际情况调整配置。

测试:

由于不进行压力测试,主要检查log的记录情况是否同原来不用代理情况一致。简单的放了一个小站点的htdocs文件,然后用telnet的方式访问80口,以及在windows客户端用浏览器访问。由于在实验机上

Apache反向代理

Apache反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个web服务器。 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中,因此普通的代理服务器不支持外部对内部网络的访问请求。 一、下载安装Apache服务器(以apache_2.2.4为例) 1. 双击“apache_ 2.2.4-win32-x86-no_ssl.msi”开始安装。 图1 欢迎界面 出现 Windows 标准的软件安装欢迎界面,见图1。 2. 直接点“Next”继续,出现授权协议,见图2。

图2 授权协议 3. 选择“I accept the terms in the license agreement”同意授权协议,然后点“Next”继续,出现安装说明,见图3。 图3 安装说明

4. 直接点“Next”下一步,出现填写信息界面,见图4。 图4 填写信息 “Network Domain”填写你的网络域名,比如 https://www.sodocs.net/doc/bb18618224.html, ,如果没有网络域名,可以随便填写。但如果你架设的 Apache 服务器如果要放入 Internet ,则一定要填写正确的网络域名。 在“Server Name”下填入你的服务器名,比如 https://www.sodocs.net/doc/bb18618224.html, ,也就是主机名。 “Administrator's Email Address”填写系统管理员的联系电子邮件地址,比如indian@https://www.sodocs.net/doc/bb18618224.html, 。 上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。 下面有两个选择,第一个是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择第一个“for All Users, on Port 80, as a Service – Recommended”。我选的是第一个“for All Users,on Port 80,as a Service -- Recommended”,用80端口并且自动启动服务,如图4所示。按“Next”继续。

Apache服务器配置实验报告

在Linux下配置Apache服务器 一、实验目的 完成本次实训,将能够: ●配置基本的Apache服务器 ●配置个人用户Web站点。 ●配置虚拟目录别名功能。 ●配置主机访问控制。 ●配置用户身份验证功能.。 ●配置基于IP地址的虚拟主机. 二、实验环境 1、RedHat Linux4AS. 2、Apache 2.0 三、实验内容 1.配置基本的Apache服务器 2.配置个人用户Web站点。 3.配置虚拟目录别名功能。 4.配置主机访问控制。 5.配置用户身份验证功能.。 6.配置基于IP地址的虚拟主机。 四、实验要求 在Linux操作系统下配置Apache服务器。 五、注意事项 1.在修配置文件下注意区分大小写、空格。 2.在每次重新开机后都必须启动Apachec服务器。 3.在每次修改完主配置文件后保存起来,必须重启Apachec服务器,如果不重启会 导致配置无效,最终导致实验失败。 六、实验步骤 1、检测是否安装了Apache软件包: A、首先为服务器网卡添加一个固定的IP地址。 B、在Web浏览器的地址栏中输入本机的IP地址,若出现Test Page测试页面(该 网页文件的默认路径为var/www/html/index.html)如下图1所示就说明Apache 已安装并已启动。

另一种方法是使用如下命令查看系统是否已经安装了Apache软件包: [root@rhe14~]# rpm –aq | grep httpd Httpd-suexec-2.0.52-9.ent Httpd-manual-2.0.52-9.ent System-config-httpd-1.3.1-1 Httpd-devel-2.0.52-9.ent 出现以上内容表明了系统已安装Apache软件包。 2、安装Apache软件包 超级用户(root)在图形界面下选择“应用程序”|“系统设置”|“添加/删除应用程序”命令,选择“万维网服务器”软件包组,在单击“更新”按钮就可以安装与Apache相关的软件包。 3、Apache的基本配置 (1)打开终端输入[root@rhe14~]# /etc/rc.d/init.d/httpd start //启动Apache 或者 [root@rhe14~]# apachectl start //启动Apache [root@rhe14~]# apachectl stop //停止Apache服务 [root@rhe14~]# apachectl restart //重启Apache服务 [root@rhe14~]# apachectl configtest //测试Apache服务器配置语法(2)在httpd.conf将Apache的基本配置参数修改、将一些注释的语句取消注释,或将某些不需要的参数注释掉。 (3)将包括index.html在内的相关网页文件复制到指定的Web站点根目下(var/www/html/index.html) (4)重启httpd进程 (5) 在Web浏览器下输入配置的ip地址出现如下图2,那表明基本配置成功了:

累积:技海拾贝――基于反向代理的单点登录方案

累积:技海拾贝|Cumulation 基于反向代理的单点登录方案 文:电力事业部 王雁飞 1. 概述 实现单点登录要解决问题是:用户体验到只需一次登录就能以适当的用户身份访问多个相关应用系统。单点登录方案的核心是统一身份认证和统一用户身份管理。 在企业范围内建立统一的身份管理系统,一般采用标准的目录服务实现认证和身份数据存储。通过建立统一的帐户存储和管理中心,作为所有账号管理行为的数据存储,以自动化的,基于策略的方式实现帐户的创建,变更,销户。 如果各个应用系统和统一身份管理系统帐户没有统一,统一身份管理系统还负责各个系统帐户在其他多个应用系统中映射帐户管理。当在统一身份管理系统创建用户,用户信息保存到目录服务器,同时在此用户将要访问的其他应用系统中建立他的相应帐户,或者直接映射一个已经存在用户。当用户信息修改,也要同步到其他应用系统中。当从统一身份管理系统删除用户,用户信息从目录服务器删除,同时在此用户将要访问的其他应用系统中删除他的相应帐户。 如果各个业务应用系统可以识别相同的登录用户身份标识,就不必做用户身份在各个应用系统的同步维护管理工作。 电力营销业务应用基于J2EE技术路线开发,由多个业务模块组成,每个业务模块部署为一个Web Module。用户通过同一登录入口进入系统,在同一浏览器窗口可以访问到多个业务模块的资源。本文介绍了多个应用模块之间单点登录方案和实现情况。 2. 背景知识 2.1. Http Cookie特性 2.1.1. 概述 Cookie是通过Http 会话头部分传递的文本信息。Cookie有名字Name、值Value、域Domain、路径Path等属性组成。 Cookie用于在Http这个无状态的协议下实现服务器和客户端的会话,使得服务器可以“识别”特定的客户端会话。Cookie在Http服务器响应客户端浏览器请求时生成发送给浏

LinuxApacheWeb服务器配置教程

LinuxApacheWeb服务器配置教程 Linux阿帕奇网络服务器配置教程 阿帕奇的主要特点 根据著名的万维网服务器研究公司进行的一项调查,全世界50%以上的万维网服务器使用阿帕奇,排名世界第一。 阿帕奇的出生非常戏剧化。当NCSA万维网服务器项目停止时,那些使用NCSA万维网服务器的人开始用他们的补丁来交换服务器,他们很快意识到有必要建立一个论坛来管理这些补丁。就这样,阿帕奇集团诞生了,后来这个集团在NCSA的基础上建立了阿帕奇。 阿帕奇的主要特点是: 。可以在所有计算机平台上运行; 。支持最新的HTTP 1.1协议; 简单而强大的基于文件的配置; 。支持通用网关接口CGI 。支持虚拟主机; 。支持HTTP认证; 。集成的Perl脚本编程语言; 。集成代理服务器; 。拥有可定制的服务器日志;。支持服务器端包含命令。支持安全套接字层。用户会话过程的跟踪能力;支持FastCGI。支持Java小服务程序。 安装Apache流程

安装Apache 接下来,我们将开始征服阿帕奇的漫长旅程。我们将一步一步地学习使用Apache,从介绍到掌握,通过需求的一步一步的例子。 系统需求 运行Apache不需要太多的计算资源。它运行良好的Linux系统有6-10MB的硬盘空间和8 MB的内存。然而,单独运行Apache可能不是您想要做的。更有可能的是,您希望运行Apache来提供WWW服务,启动CGI流程,并充分利用WWW所能提供的所有惊人功能。在这种情况下,您需要提供额外的磁盘空间和内存空间来反映负载要求。换句话说,它不需要太多的系统资源来启动WWW服务,但是它需要更多的系统资源来为大量的客户提供服务。获取软件 你可以呆在 错误日志命令用于指定错误日志文件名和路径。 命令格式:错误日志[日志文件名] 示例:错误日志/var/ srm.conf Srm.conf是一个资源配置文件,它告诉服务器您想在WWW站点上提供什么资源,在哪里以及如何提供这些资源。 DocumentRoot命令指定主文档的地址。 命令格式:文档根[路径] 示例:文档根目录/主页/ UserDir命令,用于指定个人主页的位置。如果你有一个用户测试,

三大WEB服务器对比(apache_,lighttpd,nginx)

三大WEB服务器对比分析(apache ,lighttpd,nginx)一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: ·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮, ·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) ·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2.apache apache是世界排名第一的web服务器, 根据netcraft(https://www.sodocs.net/doc/bb18618224.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中. apache 的特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的http/1.1协议 3) 简单而且强有力的基于文件的配置(httpd.conf). 4) 支持通用网关接口(cgi) 5) 支持虚拟主机.

Linux下Apache服务器的安装和配置

【实验8】Apache服务器的安装和配置 一、实验目的: 1.掌握Apache Web服务器的安装和配置。 2.使用虚拟主机在同一台服务器上架设多个网站。 二、【实验环境】 1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文 件。 2.2台以上机器组成的局域网。 三、【实验原理】 (一)Apache服务简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web 服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 (二)虚拟主机 所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成 多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务 器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自 独立的,并由用户自行管理。 虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机 技术主要应用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分 为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬体资源。如果 划分是系统级别的,则称为虚拟服务器。

(三)Linux中虚拟主机的分类 1、基于IP地址的虚拟主机 如果某公司有多个独立的IP地址可用,那么可以用不同的IP地址来配置虚拟主机。 2、基于端口的虚拟主机 如果只有一个IP地址,但是要架设多个站点,可以使用端口来区分,每个端口对应一个站点。这样配置的话,用户在访问的时候必须在 URL中指明端口号才能访问相应的网站。 3、基于名称的虚拟主机 使用基于IP地址或者端口的虚拟主机,能够配置的站点数目有限,而使用基于名称的虚拟主机,可以配置任意数目的虚拟主机,而不需要 额外的IP地址,也不需要修改端口号。 四、实验步骤 本实验请勿使用【系统】→【管理】→【服务器设置】中的【HTTPD】工具来配置,否则后果自负! (一)Apache服务器的启动 1、测试是否已安装Apache服务器: [root@localhost ~]#rpm –qa httpd 2、启动Apache服务器: [root@localhost ~]#service httpd start (二)基于端口的虚拟主机的配置 1、在/etc/httpd目录中,建立一个名为vhostconf.d的子目录,用来存放虚拟 主机的配置文件。 2、在/var/www目录中,建立一个名为websites的子目录,用于存放网站源 文件;在website目录下再建立ipvhost1和ipvhost2文件夹,用于区分各 个站点。

2-apache Apache_Web 服务器安装部署手册档

重要提示 Web服务器包括apache的安装部署和W AS7 Plugin安装部署两部分,如果的websphere应用服务器使用非集群模式,plugin则不需要安装,只需配置本文2.1章节内容,如果websphere 应用服务器使用群集模式,则需要按照本文2.2章节进行plugin安装配置。 1 Apache安装 Apache的安装和配置现在可以采用脚本自动化安装,脚本就是139ftp上的 apache_install_script.sh 请下载到web服务器中,并执行即可。 注意:在执行脚本安装前请确认web服务器的/opt/apache下没有安装过apache,并且web 服务器能上外网(能ping通https://www.sodocs.net/doc/bb18618224.html,) 成功安装apache并测试通过后即可直接继续本文第二章节Was7 Plugin安装 在root下进行root进入方法#su 然后输入密码 1.1 准备安装 关闭系统自带的web服务: #chkconfig httpd off 在线安装gcc #yum install gcc cc 下载并解压安装程序: #cd ~/ #wget https://www.sodocs.net/doc/bb18618224.html,/httpd/httpd-2.2.15.tar.gz #tar –zxvf httpd-2.2.15.tar.gz -C /usr/src Web 服务器安装部署手册 Page 4 of 21 1.2 安装Apache Web Server 进入源码目录: #cd /usr/src/httpd-2.2.15 编译源文件: #./configure //(安装到默认目录) 形成安装文件: #make 安装程序: #make install 1.3 验证安装 进入安装后目录: # cd /opt/apache/apache-2.2.15/bin 检查进程模式: #./apachectl –l Compiled in modules: core.c worker.c http_core.c mod_so.c 启动Apache Web Server:

Apache服务器的安装与配置

Apache服务器的安装与配置 一、安装Apache 双击可执行文件apache_1.3.33-win32-x86-no_src.exe,将Apache服务器软件安装至C:\Apache目录下。 二、设置C:\apache\conf\httpd.donf文件 修改Apache的核心配置文件c:\apache\conf\httpd.conf(说明一点:“#”为Apache的注释符号)。修改方法如下: 1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它。 2、寻找到ServerAdmin。这里输入你的E-Mail地址。 (以上两条在安装时应该已经配置好了,所以不必改动,这里介绍一下,主要是为了日后的修改) 3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!A 大写,两个l小写。下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。 AllowOverride All Options All Order allow,deny Allow from all 4、寻找到DocumentRoot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。此外注意,路径的分隔符在Apache Server里写成“/”。(将DocumentRoot "C:/apache/htdocs"改为DocumentRoot "C:/try") 5、寻找到DirectoryIndex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl。注意,每种类型之间都要留一空格!这里添加好了,以后就不用再麻烦了。 6、port(端口号),如果没安装IIS的话,就保持80不要变,否则,就要改一下(因为IIS的WEB服务占据了80),可以改成81等等。 三、Apache的手动启动和停止 Net start apache启动apache服务,Net stop apache停止apache服务。

致远微协同反向代理方案文档

致远微协同反向代理方案文档 一、前言: 本文旨在解决企业希望使用致远微协同时,由于V5协同系统部署在内网,而无法连接的情况。此方案使用“反向代理”技术,在保证相对安全的同时,为企业V5系统提供微协同需要的外网连接。 反向代理介绍(百度百科): 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web 服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。 反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这

两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。 二、准备工作 1、独立的,用于部署反向代理服务器一个: a)无需较高配置,一般应用服务器即可 b)Window、linux环境均可 c)此服务器有公网独立IP地址,并可连接内网协同系统。 2、至Nginx官方网站()下载对应版本,安装到此服务器,windows版本安装较简单,linux 版本安装较复杂,相关安装教程可百度搜索“Nginx 安装” 三、配置工作 1、Nginx安装好后,找到其目录下的conf/文件,修改其配置,文件样例如下,注意真正需 要修改配置的地方为红色放大标注的: #user nobody; worker_processes 1; #error_log logs/; #error_log logs/ notice;

Apache服务器配置技巧

1、如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒。 设置这个TimeOut适用于三种情况: 2、如何接收一个get请求的总时间 接收一个post和put请求的TCP包之间的时间 TCP包传输中的响应(ack)时间间隔 3、如何使得apache监听在特定的端口 修改httpd.conf里面关于Listen的选项,例如: Listen 8000 是使apache监听在8000端口 而如果要同时指定监听端口和监听地址,可以使用: Listen 192.170.2.1:80 Listen 192.170.2.5:8000 这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。 当然也可以在httpd.conf里面设置: Port 80 这样来实现类似的效果。 4、如何设置apache的最大空闲进程数 修改httpd.conf,在里面设置: MaxSpareServers n 其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。 同时也可以设置: MinSpareServers n 来限制最少空闲进程数目来加快反应速度。 5、apache如何设置启动时的子服务进程个数 在httpd.conf里面设置: StartServers 5 这样启动apache后就有5个空闲子进程等待接受请求。 也可以参考MinSpareServers和MaxSpareServers设置。 6、如何在apache中设置每个连接的最大请求数 在httpd.conf里面设置: MaxKeepAliveRequests 100 这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。 7、如何在apache中设置session的持续时间 在apache1.2以上的版本中,可以在httpd.conf里面设置: KeepAlive on KeepAliveTimeout 15 这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp

Nginx反向代理Tomcat服务器

一、Tomcat 基本配置 1.为Tomcat提供SysV脚本 2.catalina 脚本讲解 3.telnet 登录管理Tomcat 4.配置Tomcat虚拟主机 5.Tomcat图形管理接口 6.部署JSP网站案例 二、Nginx反向代理Tomcat服务器 1.Nginx将请求反向代理到后端Tomcat 2.Nginx将图片缓存到本地 3.Nginx将请求实现动静分离 注,实验环境说明,操作系统:CentOS 6.4 x86_64,软件版本:jdk-7u40、 apache-tomcat-7.0.42、Nginx-1.4.2,博客中所用到的软件请到这里下载: https://www.sodocs.net/doc/bb18618224.html,/QGBCLwrZnpLMS。 一、Tomcat 基本配置 1.为Tomcat提供SysV脚本 注,在上一篇博文中我们已经演示安装了Tomcat,这里我们就不在演示,不清楚的博友可以参考这篇博文,https://www.sodocs.net/doc/bb18618224.html,/2033581/1299644,在上一篇博文中我们没有增加,SysV脚本,在这篇博文中我们来增加一下,下面我们就来具体演示一下。 [root@tomcat ~]# vim /etc/init.d/tomcat #!/bin/sh # Tomcat init script for Linux. #

# chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. CATALINA_HOME=/usr/local/tomcat #注意你的脚本路径 export CATALINA_HOME # export CATALINA_OPTS="-Xms128m -Xmx256m" exec $CATALINA_HOME/bin/catalina.sh $* 下面我们来增加执行权限,并加入服务列表设置开机自启动, [root@tomcat ~]# chmod +x /etc/init.d/tomcat [root@tomcat ~]# chkconfig --add tomcat [root@tomcat ~]# chkconfig tomcat --list tomcat 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭 下面我们来启动一下Tomcat并测试一下, [root@tomcat ~]# service tomcat start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/to mcat-juli.jar 查看一下启动的端口号, [root@tomcat ~]# netstat -ntulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Progra m name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1044/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1121/master tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 12988/sshd tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 13053/sshd tcp 0 0 :::8080 :::* LISTEN 13088/java tcp 0 0 :::22 :::* LISTEN 1044/sshd tcp 0 0 ::1:25 :::* LISTEN 1121/master tcp 0 0 ::1:6010 :::* LISTEN 12988/sshd tcp 0 0 ::1:6011 :::* LISTEN 13053/sshd

Apache的ProxyPass指令详解

描述:将远程服务器映射到本地服务器的URL空间 语法:ProxyPass [路径] !|url [键=值键=值...]] [nocanon] 上下文:server config, virtual host, directory 状态:扩展 模块:mod_proxy 该指令可以将远程服务器映射到本地服务器的URL空间;本地的服务器并不是扮演传统意义上的代理服务器的角色,而是表现为远程服务器的一个镜像。此本地服务器常被成为反向代理(reversed proxy)或者是网关(gateway)。路径是指本地虚拟路径的名字;url指远程服务器的一个部分URL,不能包含查询字符串。 注意:在使用ProxyPass指令的时候,ProxyRequests指令通常都应该是关闭的。 假设本地服务器的地址是https://www.sodocs.net/doc/bb18618224.html,/ ,那么 ProxyPass /mirror/foo/ https://www.sodocs.net/doc/bb18618224.html,/ 将会把对https://www.sodocs.net/doc/bb18618224.html,/mirror/foo/bar的本地请求内部转换成到https://www.sodocs.net/doc/bb18618224.html,/bar的代理请求。 其中,!指令当你不想对某个子目录进行反向代理的时候就有用了,例如: ProxyPass /mirror/foo/i ! ProxyPass /mirror/foo https://www.sodocs.net/doc/bb18618224.html, 将会把所有的/mirror/foo请求重定向到https://www.sodocs.net/doc/bb18618224.html,除了对/mirror/foo/i的请求。 注意: 顺序很重要:排除的指令必须在一般的ProxyPass指令之前。 和Apache 2.1一样,具备了使用到后端服务器的线程池的能力。使用“键=值”的参数便可调节线程池的分配。硬性最大值(Hard Maximum)的默认值为当前MPM中每个进程的线程数量。在Prefork MPM中,该值总是为1,在Worker MPM中,该值受ThreadsPerChild控制。 设置min可以决定有多少到后端服务器的链接始终打开。根据需要最多创建数量为柔性最大值(Soft Maximum),也就是smax的链接。任何超出smax数量的链接都会指定一个生存时间也就是ttl。Apache不会同时创建超过硬性最大值(或max)数量的到后端服务器的链接。 ProxyPass /example https://www.sodocs.net/doc/bb18618224.html, smax=5 max=20 ttl=120 retry=300 参数默认值描述 min 0 到后端服务器的总是打开的链接最小数。 max 1…n 允许连接到后端服务器的硬性最大链接数。硬性最大值的默认值为当前MPM 中每个进程的线程数量。在Prefork MPM中,该值总是为1,在Worker MPM中,该值受ThreadsPerChild控制。

apache服务配置

Apache 安装后启动然后配置即可.记得开启80 端口. iptables –I INPUT –p tcp –dport 80 –j ACCEPT 开启tcp 80 端口 apache 的配置文件: httpd.conf 路径: /etc/httpd/conf/httpd.conf DocumentRoot “/var/www/html”设置主目录的路径 DirectoryIndex index.html index.html.var 设置默认主文档,中间用空格格开 Listen 80 Listen 192.168.1.1:80 设置apache监听的IP地址和端口号,可添加多个 ServerRoot “/etc/httpd”设置相对根目录的路径(存放配置文件和日志文件) ErrorLog Logs/error_log 设置错误日志存放路径 CustomLog Logs/access_log combined (日志格式) 设置访问日志存放路径 如果日志文件存放路径不是以”/”开头,则意味着该路径相对于ServerRoot 的相对路径. ServerAdmin 邮箱地址{设置管理员的E-mail地址 ServerName FQDN名或IP地址{设置服务器主机名 由于Apache默认字符集为西欧(UTF-8),所以客户端访问中文网页时会出现乱码. 将语句“AddDefaultCharset UTF-8”改为“AddDefaultCharset GB2312”方可解决,不过要重新启动Apache服务. 修改完默认字符集后,客户端如需访问,要先清空浏览器的缓存.

创建虚拟目录,添加Alias语句即可 Alias /ftp “/var/ftp”Alias 虚拟目录名物理路径 Options Indexes 定义目录特性 AllowOverride None 一般这样写就行 Order allow,deny 设置访问权限 Allow from all 允许所有用户访问 要实现虚拟目录用户认证,首先要建立保存用户名和口令的文件 htpasswd -c /etc/httpd/mysecretpwd (文件名) text (用户) -c 选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容.所以在添加第二个用户到口令文件时,就不需要使用-c 选项了. Alias /ftp “/var/ftp” AuthType Basic 设定认证类型,Basic最常用AuthName “This is a private directory. Please Login:”辛苦点,全背上吧. AuthUserFile /etc/httpd/mysecretpwd 定义口令文件路径Require user text(用户) 定义允许哪些用户可以访问

Apache服务器配置安全规范以及其缺陷

Apache服务器配置安全规范以及其缺陷!正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP 协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行拒绝服务(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷。主要安全缺陷(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。(2)缓冲区溢出的安全缺陷该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。(3)被攻击者获得root权限的安全缺陷该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。(4)恶意的攻击者进行拒绝服务(DoS)攻击的安全缺陷这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。正确维护和配置Apache服务器虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目,难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:(1)Apache服务器配置文件Apache Web服务器主要有三个配置文件,位于 /usr/local/apache/conf目录下。这三个文件是:httpd.conf-----主配置文件srm.conf------填加资源文件access.conf---设置文件的访问权限(2)Apache服务器的目录安全认证在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。AuthName 会员专区 AuthType BasicAuthUserFile /var/tmp/xxx.pw -----把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 -----第一次建档要用参数-c % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。注:采用了Apache内附的模组。也可以采用在httpd.conf中加入:options indexes followsymlinks allowoverride authconfig order allow,deny allow from all (3)Apache服务器访问控制我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。order deny,allowdeny from allallow from https://www.sodocs.net/doc/bb18618224.html, 设置允许来自某个域、IP地址或者IP段的访问。(4)Apache服务器的密码保护问题我们再使 用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:AuthName PrivateFilesAuthType BasicAuthUserFile /path/to/httpd/usersrequire Phoenix# htpasswd -c /path/to/httpd/users Phoenix设置Apache服务器的WEB和文件服务器我们在Apache服务器上存放WEB 服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用

Apache服务器配置毕业设计

A p a c h e服务器配置毕 业设计 目录 摘要 ................................................................................................................ 错误!未定义书签。 1 综述 (1) 1.1 架设WWW网站的意义 (1) 1.2 WWW的工作原理 (1) 1.3 在Linux下构建WWW服务器 (2) 1.3.1 关于硬件配置 (2) 1.3.2 将linux用作www服务器 (2) 2 Red Hat Linux的安装与使用 (4) 2.1 Red Hat Linux9.0简介 (4) 2.1.1 Red Hat Linux的网络功能 (6) 2.1.2 Red Hat Linux的文件类型 (9) 2.2 Red Hat Linux9.0的安装和配置 (11) 2.2.1 合理划分分区 (11) 2.2.2 了解相关信息 (12) 2.2.3 图形化安装过程 (13) 3 WWW服务器的建立 (27) 3.1 Apache的体系结构及性能 (27) 3.1.1 Apache的体系结构 (27) 3.1.2 Apache性能简介 (28) 3.2 配置并启动Apache (31) 3.2.1 配置文件httpd.conf (31) 3.2.2 Apache服务的安装、启动与停止 (32) 3.3 设置用户个人主页 (33) 3.3.1设置Linux系统用户个人主页的目录 (33) 3.3.2设置用户个人主页所在目录的访问权限 (33) 3.4 设置虚拟主机 (34) 3.4.1 配置DNS (34) 4 建立和完善WWW站点 (42) 4.1建立安全传输的WWW站点 (42) 4.1.1认识SSL安全协议 (42) 4.1.2 维护站点安全性应注意的问题 (42) 5 结论 (44) 致谢 ................................................................................................................ 错误!未定义书签。参考文献.. (45) 8

Apache+WebSphere服务器部署方案

Apache+WebSphere 服务器部署方案 版本号:V1.1 2011年9月

目录 重要提示 (2) 1Linux 安装 (2) 1.1安装全部程序 (2) 1.2安装源设置 (2) 2Apache安装 (3) 2.1准备安装 (3) 2.2安装Apache Web Server (3) 2.3验证安装 (4) 2.4编译代理/反向代理模块 (5) 2.5配置代理/反向代理模块 (6) 2.6创建配置文件crossdomain.xml (8) 2.7Apache中文乱码问题解决 (8) 2.8配置RewriteRule (11) 3Was7 Plugin安装 (11) 3.1Websphere常用命令 (12) 3.2JDNI配置 (12) 3.3应用服务器单机版配置 (16) 3.4应用服务器集群版配置 (16) 4常见问题 (23) 4.1环境问题 (23) 4.2应用问题 (24)

重要提示 Web服务器包括apache的安装部署和WAS7 Plugin安装部署两部分,如果的websphere应用服务器使用非集群模式,plugin则不需要安装,只需配置本文2.1章节内容,如果websphere应用服务器使用群集模式,则需要按照本文2.2章节进行plugin安装配置。 1Linux 安装 1.1 系统安装 1.根分区磁盘容量应大于20G 2.推荐安装所有应用程序 1.2 安装源设置 图中黑色边框指示设置系统安装源,尤其在服务器无法连接外网时需要使用光盘作为安装源

2Apache安装 2.1 准备安装 关闭系统自带的web服务: #chkconfig httpd off 安装gcc(适用于系统没有安装gcc时) #yum install gcc* (yum install gcc-c++ libstdc++-devel) 出现y/n提示时,输入y 下载并解压安装程序: #cd ~/ #wget https://www.sodocs.net/doc/bb18618224.html,/httpd/httpd-2.2.15.tar.gz #tar –zxvf httpd-2.2.15.tar.gz -C /usr/src 把包解压到/usr/src 2.2 安装Apache Web Server 进入源码目录: #cd /usr/src/httpd-2.2.15 配置编译文件: #./configure --prefix=/opt/apache --enable-so --enable-mods-shared=most --with-mpm=worker 编译文件: #make

相关主题