在介绍虚拟目录之前再介绍一些额外的讲解
Apache日志文件
对于www等大型服务器,建立日志文件是一项必不可少的工作。通过分析日志文件不仅可以监控Apache的运行情况,而且还能分析出错原因和找出安全隐患。
1.错误日志
错误日志记录Apache在运行过程中及启动过程中发生的错误。日志路径为/etc/httpd/logs/error_log我们打开它看一下
错误日志由4部分组成,第一部分表示错误发生的时间。第二部分表示错误的级别或严重性。第三部分表示导致错误的ip地址。最后一部分是信息本身。在小编的这张图中,服务器拒绝了本地的访问,因为在设定目录下找不到favicon.ico这个图标文件。
2.访问日志
customlog参数可以设置日志存储的位置,通过分析访问日志可以知道哪些客户端什么时候访问了网站的哪些文件。
这里的common是一种格式,Apache最常用的就是combined和common。common是一种通用的日志格式,可以被很多日志分析软件所识别。combined是一种组合类型的日志。这种格式与通用日志格式类似,但是多了“引导页”和“浏览器识别”两项内容。
默认情况下,日志格式采用的是combined,下面看一个combined类型的日志
127.0.0.1:请求到服务器客户的ip地址(这里是本地访问)
-(第一个)由客户端identd进程判断的rfc1413身份,输出为"-"表示此处的信息无效
-(第二个)HTTP认证系统得到访问该网页的滆湖标识,环境变量remote_user会被设为该值并提供给CGI脚本。如果状态码是401,则表示客户未通过认证。如果网页没有设置密码保护,则此项是"-"
[20/Apr...0800]:服务器完成请求处理的时间
GET/favicon.ico HTTP/1.1:引号中是客户端发出的包含许多有用信息的请求行。可以看出,该客户的动作是GET,使用的协议是HTTP/1.1
404 :服务器返回给客户端的状态码。这个信息比较有价值,它表示请求的结果,是被成功响应了(以2开头),还是被重定向(以3开头),或者出错了(以4开头),或者产生了服务器端错误(以5开头)。这里既以4开头,说明了这个文件没找到,出错了。
284:返回客户端的不包括响应头的字节数,如果没有信息返回,则此项应该是“-”
-(下一行的):指明该请求是从哪个网页被提交过来的
Mozilla/5.0:客户端提供的浏览器识别信息
目录设置
目录设置就是为服务器上的某个目录设置权限。通常在访问某个网站的时候,真正所访问的仅是那台web服务器里某个目录下的某个网页文件,而整个网站由这些网页目录和网页文件组成。作为网站管理人员,可能经常需要只对某个目录进行设置,而不是对整个网站进行设置。如:拒绝某台主机或某网段的主机访问某个目录内的文件,这时,可以使用<Directory></Directory>容器来设置。
根目录设置
说明:option定义目录使用特性,后面的FollowSymlinks表示在该目录中使用符号链接。Option可以设置很多功能,下面就是它的一些属性。
{
FollowSymLinks:允许在目录中使用符号链接
Indexs: 允许目录浏览,如果客户端没有指定访问目录下的具体哪个文件,而且该目录下也没有首页文件时,则显示该目录的结构,包括该目录下的子目录和文件
MultiViews: 允许内容写上的多重视图
ExecCGI: 允许在该目录下执行CGI脚本
Includes: 允许服务器端包含功能
IncludesNoexec:允许服务器端包含功能,但不能执行CGI脚本
ALL: 包括除MutiViews之外的所有特性(如果没有Options字段,则默认为ALL)
}
AllowOverride None:设置.htaccess文件中的指令类型。None表示禁止使用.htaccess
文档目录设置
说明:Order allow,deny设置默认的访问权限与Allow和Deny字段处理顺序。allow设置哪些客户端可以访问服务器。与之对应的deny用来限制哪些客户端不能访问服务器。
常用的访问控制有两种形式:
1.Order allow,deny
表示默认情况下禁止所有客户端的访问,且allow字段在deny字段之前被匹配。如果既匹配allow字段又匹配deny字段,则deny字段最终生效。也就是说deny会覆盖allow
2.Order deny,allow
表示默认情况下允许所有客户端的访问,且deny字段在allow字段之前被匹配。如果既匹配allow字段又匹配deny字段,则allow字段最终生效。也就是说allow会覆盖deny
以上说了那么多,是时候该进入正题了,也就是虚拟目录
虚拟目录
在通常情况下,网站资源需要放在Apache的文档目录中才可以发布在网页中,默认的路径是“/var/www/html”。如果想要发布文档目录以外的其他目录,就需要用到虚拟目录这个功能。
虚拟目录实际上是给实际目录起一个别名。尽管这个目录中的内容不在Apache的文档目录中,但是用户通过浏览器访问此别名依旧可以访问到该目录的资源,此外,虚拟目录还有以下优点。
1.方便快捷。虚拟目录的名称和路径不瘦真实目录名称和路径的限制,因此在使用虚拟目录的时候可以让设置更加方便快捷,而且在用户看来,完全感觉不到在访问虚拟目录。
2.灵活性强。虚拟目录可以提供的磁盘空间几乎是无限大的,这对于做视频点播的网站和需要大磁盘空间的网站而言,是一项非常实用而灵活的功能。
3.便于移动。如果文档目录中的目录移动了,那么相应的URL路径也会发生改变,而只要虚拟目录的名称不变,则实际路径无论发生何种改变都不会影响用户的访问。
4.良好的安全性
语法:Alias /虚拟目录名/ "真实目录"
这里小编添加了一个mez的虚拟目录,真实目录也就是放置Apache文件目录
我们在浏览器输入虚拟目录名
还是一样的效果。
在最后,小编再补充一下Apache用户和组的相关知识
为了提高安全性,可以为Apache建立专用的用户和组,以提供运行Apache子进程使用。如果以root身份运行Apache,那么非法这利用Apache漏洞可以得到root权限的。如果降低Apache用户的权限,以非root用户和组的身份来运行Apache,则可以大大增强安全性,因为即使黑客获取了这些账号和密码,也不能对服务器做过大的破坏。
配置文件中的User和Group字段分别可以设置对请求提供服务的Apache子进程运行时的用户和组
这是是系统默认的,当然我们也可以自己建立用户和组。