一、灵活应用重定向功能。
有时候处于某些原因,如添加硬盘或者升级服务器的需要,系统管理员需要更改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数据缓存管理机制要比其他应用服务器灵活的多。