Apahce服务器是一个稳定的、商业性的和公开程序源代码的HTTP服务器。其在HTTP市场中占有主导性的地位。据权威部门统计,Apache服务器的市场占有率大概在60%左右,可见其市场的影响力。因为Apache服务器可以提供HTTP通信协议的标准平台,所以无论是在商业领域又或者是在实验领域其都可以帮助企业建立一个稳定的WEB应用环境。在这里笔者废话就不说了,只说说在配置Apache服务器过程中我认为比较重要的两个内容。
一、灵活应用重定向功能。
有时候处于某些原因,如添加硬盘或者升级服务器的需要,系统管理员需要更改WEB服务器中网页的存储位置。此时该如何让WEB服务器了解这个变更的信息呢?如果一张张的去更改网页的位置,显然工作量太大。在某些WEB服务器中,是通过相对路径来解决这个问题的。只要把跟文件夹移动到另一个位置,然后只需要更改根文件夹的位置,那么这个文件夹中的网页内容,由于采取了相对路径为此就不需要一一进行调整的。不过在Apache服务器中则是采取了另外一种独特的处理机制,即重定向功能。
由于当客户端浏览器向WEB服务器请求访问某一个网页时,WEB服务器会先找出这个URL地址所指向的网页,然后把网页的内容回传给浏览器。可以如果系统管理员由于特定的需要移动了WEB站点网页的位置时,就很难保证所有指到旧网页地址的连接全部更改成新的位置。在遇到这种情况的时候,系统管理员需要对涉及到的连接进行一一测试并调整,以保证连接的正确性。显然这个手工调整的工作量很大,因为某个网页中涉及到的连接可能会有成百上千条。一一更改这些连接所需要耗费的工作量不是小数目。即使数量比较少,但是让系统管理员手工重复的更改这些信息,他们也不在愿意做,因为太没有挑战性。为此,能否有一次性更新的方法呢?就好像在数据库中,利用Where语句把需要更新的内容查找出来然后再利用Update语句把需要更新的内容进行一次性调整。在Apache服务器中就是这么实现的。如指需要在Apache服务器命令行环境中使用命令redirect 旧URL地址 新URL地址即可。第一个参数旧URL地址就好像是一个查询条件,把符合这个条件的记录查找出出来(其他网页指向这个网页的地址);然后利用新的URL地址进行替换。如此到客户端请求访问这个网页时,浏览器就会把新的网页内容返回给客户端。注意此时客户端发出的请求采用的是旧的WEB地址(客户端并不知道在服务器后台所做的修改),而WEB服务器发现网页位置更改过后,就会重定向客户端网页访问的请求。把客户端的发送的旧地址利用新地址来代替。这就是Apache服务器所采取的重定向机制。
利用这个重定向功能不仅可以解决网页位置变动的问题,而且还有其他一些有用的用途。如当在对网页进行改变或者新添加功能的时候,可能需要在短时间内中止用户的访问。如有些论坛出于合并的需要,或者可能被黑客攻击而不得不暂时中止访问。此时为了表示对访问者的歉意,他们往往希望能够把客户的访问请求连接到一个特殊的页面中。在这个页面中会表明这个网站暂时关闭的原因以及在此开发的时间。让访问者看到这个信息之后能够知道这只是暂时关闭,而不是永久性的关闭。这有利于稳住老客户的心,让好不容易才积累起来的客户群不丢失。其实这也可以通过重定向功能来实现。如系统管理员预先定义好一个网页,然后在需要的时候利用重定向功能更新网站地址即可。等到故障恢复之后,再启用原先的连接。
所以说,Apache服务器中重定向功能是一项很有用的内容。其不仅可以用来完成其他服务器上的相对路径的功能,而且还可以完成其所不具备的内容。如果Linux系统管理员要用Apache服务器来实现企业的HTTP服务器的话,则重定向功能无疑是其必须掌握的一项功能。
二、缓存设置。
在这里讲的缓存,给其他应用服务器上所说的高速缓存是两个完全不同的概念,系统管理员不能够混为一谈。其他应用服务器讲的高速缓存往往是指把用户的内容保存在内存中。但是由于内存的容量有限,为此保存的内容并不是很多。但是由于网页中往往包含着比较丰富的图片、动画、背景音乐等信息,为此光凭内存中这点容量往往起到的作用有限。为此在Apache服务器中其实现了一种基于硬盘的数据缓存技术。在Apache服务器中所讲的缓存,是指将客户端上一次请求所得到的信息,如网页的内容、图片等信息,保存在服务器的硬盘中(而不是内存上)。当客户端下次请求同一个信息时,即可将此内容立即响应给客户端。如此就可以大幅度的降低网页的响应时间,可以提供更高速的网络应用效率。由于硬盘往往没有内存空间的限制,为此可以缓存更多的内容。在这着Apache服务器的缓存功能时,主要抓住以下几个方面的问题。
1、缓存的容量设置。虽然说硬盘的空间比较大,但是还是必须为数据缓存设置一个最大的上限。否则的话日积月累,服务器硬盘迟早会被这个数据缓存所消耗光。故启用数据缓存技术后,系统管理员不要忘了应该立即采用CacheSize参数来设置这个缓存的上限。当服务器对缓存容量进行检查时,如果超过这个最高的限制,则服务器会将超过部分的内容删除。注意这个参数的单位是KB,如果需要这只2M缓存的话,就需要把这个参数的值设置为2048。这个值到底该设置多少呢?没有一个固定的标准。要根据服务器所提供的内容来判断。如果服务器中有大量动画、电影等等,则最好能够设置比较大的缓存空间。如此的话访问同一资源的人越多,后续的访问者借助数据缓存技术就能够得到比较好的访问速率。
2、检查数据缓存的时间间隔。服务器会定时的检查数据缓存空间。一是要保证这个数据缓存的空间在最大的限值之内;二是需要了解数据缓存中内容是否有及时更新。 默认情况下,这个更新时间是由Apache服务器的CacheGcinterval参数来确定,默认值为4小时。根据服务器用途的不同,可以更改这个值。如服务器是一个提供及时新闻的服务器,那么这个值就需要设置的少一点。在启用数据缓存的情况下,就需要启用这个参数。如果没有启用这项功能的话,则服务器就不会对缓存中的内容进行检查,也就不会将超过缓存最高容量上限的内容进行自动删除。这就会导致硬盘空间逐渐被消耗,直道占满整个硬盘为止。在设置这个参数的时候,往往需要在硬盘空间与数据有效性之间进行抉择。有时候系统管理员必须要不断的调整、追踪后才能够最终确定一个合理的参数。
[NextPage]
另外,往往这个参数会跟CacheLastMoidffiedFaor参数一同使用。顾名思义,这个参数主要用来数据缓存空间中文件更新的,不过这不是一个简单的时间参数,而是一个时间系数。在Apache服务器中是根据这个系数来计算缓存文件中的过期时间。如数据缓存中的某个文件起最后改动到目前已经有30个小时,而这个参数为0.1(默认值),那么过期时间就是这两个值的乘积,即为3小时。在3个小时之后,会自动把这个数据缓存文件删除(前提是启用了上面这个数据缓存的时间间隔参数)。这可以节省数据缓存的空间,提高硬盘的利用率;同时也可以保证数据缓存中信息的有效性。
3、禁用缓存。其实并不是所有网站都需要这个数据缓存。如对于一些提供基金净值或者股票动态信息的网站,则不需要采用数据缓存。因为这些网站的信息时效性比较高。一般来说,内容经常需要变动的网站不需要数据缓存技术。若采用这种技术的话,有可能是搬起石头砸自己的脚。为此如果需要禁用这个数据缓存的话,则可以利用NoCahce指令来禁用这个数据缓存的功能。如果在一台服务器上采用了虚拟主机等技术实现多个网站的话,还可以根据网站的用途不同,来进行分别设置。如把提供及时信息的新闻或者基金等网站设置为禁用缓存,而把其他的网站设置为采用缓存。甚至还可以根据地址来为特定的网页来启用或者禁用数据缓存。显然,Apache数据缓存管理机制要比其他应用服务器灵活的多。