Apache服务器的小技巧
A1.1 Apache模块
在搭积木的游戏中,每块积木有不同的形状和尺寸,孩子们根据自己的想象挑选出合适的积木,搭出完整的房子。Apache的模块与此类似。每个模块提供不同的功能,用户可以根据自己的需要往Apache可执行程序中添加模块,或者从中去掉没用的模块。Apache的核心模块http_core提供了最基本的功能,没有了它,Apache什么都干不了。除了这个模块,绝大部分的模块都是可以自由取舍的。
在众多Apache模块中,有一个引人注目的模块:mod_so。它提供了一种动态加载Apache模块的方法。有了mod_so,您不必为了添加或删除一个模块而重新编译Apache,所要做的只是修改httpd.conf的内容,然后重新启动httpd。XteamServer的Apache中只编译了http_core和mod_so两个模块,其余模块均在httpd.conf中动态加载。
A1.2 Proxy服务设置
Apache带有一个proxy模块。编辑配置文件httpd.conf,在关于Proxy的地方设置如下--去掉关于Proxy行前的原有的注释并做相应的修改:
LoadModule proxy_module modules/libproxy.so
AddModule mod_proxy.c
<IfModule mod_proxy.c>
ProxyRequests On
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .your_domain.com
</Directory>
ProxyVia On
CacheRoot "/var/cache/httpd"
CacheSize 102400
CacheGcInterval 4
CacheMaxExpire 48
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
NoCache some_domain.com
</IfModule>
其中:
CacheSize 102400指缓存区大小为100MB;
CacheGcInterval 4设置Apache每4小时强制删除过时的cache文件;
CacheMaxExpire 48设置所有缓存文件的终止时间为48小时;
CacheLastModifiedFactor 0.1当原服务器不提供某文件过期时间时,自动推算其过期时间;
CacheDefaultExpire 1设置所有缓存文件的缺省终止时间为1小时;
NoCache some_domain.com指出不进行缓存的主机、域名和IP地址,之间用空格分隔;
改变配置后,在服务器上建立Proxy所使用的Cache目录(本例中为/var/cache/httpd),并将其属性设置为可写状态(所有者为nobody,权限为755),然后重起Apache是改变的配置生效。这样在客户端的浏览器上便可以将Proxy设置为该服务器了。
A1.3 建立基于域名的虚拟主机服务
所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,可以将两个不同公司www.company1.com与www.company2.com的主页内容都存放在同一台主机上,而访问者只需输入公司的域名就可以访问到它想得到的主页内容。
假设Apache服务器所在的主机的IP地址为202.202.202.202,只要在其配置文件httpd.conf中加入以下内容:
NameVirtualHost 202.202.202.202
<VirtualHost 202.202.202.202>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.company1.com
ServerName www.company1.com
ErrorLog /var/log/httpd/www.company1.com/error.log
</VirtualHost>
<VirtualHost 202.202.202.202>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.company2.com
ServerName www.company2.com
ErrorLog /var/log/httpd/www.company2.com/error.log
</VirtualHost>
,并在服务器上创建相应的目录,然后重起Apache是改变的配置生效,就可以使用基于域名的虚拟主机服务了。
A2.1 ftpaccess
关于Wu-ftp所提供的功能,大部分的设定都放在/etc/ftpaccess里面。下面是一些关于该文件设置的小技巧。
连接拒绝
deny这个设定可以有两个作用:
1 设定来自特定网络地址的机器不允许连接。
2 当来自该特定网络地址的机器尝试连接时,指定显示哪个消息文件。
这样,该使用者会知道为什么被拒绝连接。
用法:
deny *.somewhere.com /etc/ftpmsgs/msg.denied
当来自*.somewhere.com的使用者连接ftp服务器时,系统将在其客户端显示文件/etc/ftpmsgs/msg.denied中的内容。可以根据需要改变该文件中的内容。
设定同时最多允许多少人连接
limit可以设定哪些类别的使用,在哪些时段,最多允许几个人同时连接。
用法:
limit all 20 Any /etc/ftpmsgs/msg.toomany
使用者类别all,在任何时段同时最多可以有20个使用者;如果超过,后来的使用者将会被拒绝,并且系统会在其客户端显示文件/etc/ftpmsgs/msg.toomany中的内容。
其他讯息显示的设定
Wu-ftp可以让使用者在连线时、登录时、改变目录时分别显示不同的讯息。而这些显示讯息的来源则分别透过banner、message来指定。
banner
用法:
banner /etc/ftp.banner
设定当使用者刚开始连上服务器时显示的讯息,通常是本主机的介绍。在文件中,可以包含一些变量,这些变量将会在显示时适当的字符串取代。列举常用的变量如下:
%E:管理员的E-Mail地址;
%L:主机名称;
%M:最多允许多少使用者同时连接;
%N:目前有多少个使用者在线;
%T:当前时间;
message
用法:
message /etc/welcome.msg login
当使用者成功登录服务器后,Wu-ftp显示文件/etc/welcome.msg的内容作为欢迎讯息。
用法:
messages .message cwd=*
当使用者改变目录后,Wu-ftp显示该目录下的.message文件内容作为辅助说明。
A2.2 anonymous密码的检查原则
当Wu-ftp允许匿名登录时,密码的部份一般是输入来访者的E-Mail地址,但是我们根本无法确定来访者所输入的E-Mail地址是否有效。在这种情况下,Wu-ftp提供一个选项,由Wu-ftp检查来访者所输入的密码是否真的像是个E-Mail地址的格式(user@hostname),然后对于不太像的给予一个警告讯息,或是强制他输入正确格式的密码。
用法:
passwd-check rfc822 warn
如果密码不是E-Mail格式时,显示警告讯息,仍可登录。
passwd-check rfc822 enforce
如果密码不是E-Mail格式时,请来访者重新输入。
2Wu-ftp附带的工具
Wu-ftp除了提供FTP服务器程序之外,同时也附带了几个小工具来让系统管理者检查目前FTP服务器的运行情况。
ftpcount:显示目前FTP服务器的使用者数目。
ftpwho:显示目前FTP服务器的使用者连线情况,类似ftpcount,但信息更加详细一些。