Linux Apache Web 服务器(续三)

在这种情况下,在WWW上保证可以使用的唯一认证机制是由HTTP本身提供 的。在标准的Apache服务器实现了这样的认证,它能控制哪些主机可能访问特定的站点或特点的站点的一部分。

这种认证可以分为两种,一种是基于主机的的认证,另一种是基于用户名/口令的认证。由于互联网上的决大多数用户的IP地址是动态获得的,所以基于主机的认证方式并不总适用。所以在大多数情况下,传统的基于用户名/口令的认证方式更为现实。下面我们就对这两种认证的实现做一简要的介绍。

8.1 基于主机的认证方式

在种认证模式顾名思义,访问是用主机名或主机IP地址来控制的。支持这种认证方式的是Apache的mod_access模块,这个模块缺省状态下是被安装了的。该模块用以下几种Apache命令来提供访问控制功能。

allow命令

语法:allow from host1 host2 host3 ...

这个命令定义了允许访问站点或目录的主机清单。主机清单可以用以下几

种形式表示:

ALL:代表所有主机;

主机的全域名,如:www.mot.com;

主机的部分域名,如:.mot.com;

完整的IP地址,如:202.98.2.32;

部分IP地址,如:202.98

网络地址/网络掩码对,如:202.98.0.0/255.255.0.0

网络地址/nn(CIDR定义),如:202.98.0.1/16

deny命令

语法:deny from host1 host2 host3 ...

这个命令定义了禁止访问站点或目录的主机清单,其他与allow命令相似。

order命令

语法:order deny,allow | allow,deny

这个命令定义评价allow和deny命令的先后顺序。

例如:

<Directory /home/httpd/html>
order deny,allow
deny from www.mot.com
allow all
</Directory>

这组命令设置了禁止www.mot.com访问/home/httpd/html目录下的文件。

请大家注意,顺序是先deny后allow,如果是:order allow,deny 那么,先允许所有的主机访问,然后再禁止,这样是无效的,所有主机仍然能够访问。

8.2 基于用户名/口令的认证方式

这种认证方式其实相当简单,当WWW浏览器请求经此认证模式保护的URL

时,将会出现一个对话框,要求用户键入用户名和口令。用户输入后,传给WWW服务器,WWW服务器验证它的正确性,如果正确,返回页面,否则返回401错误。要说明的一点是,这种认证模式是基本的,并不能用于安全性要求极高的场合。

Apache中有许多模块可以支持这种认证方式,下面我们就介绍一下最基本、最标准的mod_auth模块。正如前面提到的一样,mod_auth模块使用存储在文本文件中的用户名、组名和口令来实现认证。这种方法非常适合处理少量用户,它能工作得很好。如果你需要对大量的用户,如数以千计的用户做认证时,这种方法的性能将急剧下降到不可忍受,所以当这种情况下,就需要考虑使用mod_dbm模块或mod_mysql模块来获得更好的性能。

实例一:需要用户名和口令的访问控制

下面我们就一起来看一下如何建立需要用户名/口令才能进行访问的目录。

基本情况: www.xxx.com

的站点有设置为:

DocumentRoot /home/httpd/html
AccessFileName .htaccess
AllowOverride All

需求:限制/home/httpd/html/backup/目录的访问,只允许用户“super”以口令“fill-06”访问此目录。

实现步骤:

使用htpasswd建立用户文件

htpasswd –c /home/httpd/secr/.htpasswd super

此程序会询问用户“super”的口令,你输入“fill-06”,两次生效。

建立.htaccess文件

用vi在/home/httpd/html/backup/目录下建立一个文件.htaccess,写入

以下几行:

AuthName My Friend Only (注:这个名字是任取的)
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
require user super

设置文件权限,确保Apache用户有读的权限

这样就完成了设置工作,你可以试一试效果了。

实例二:允许一组用户访问一个目录

假设,现在www.xxx.com想让myfriend组中的mf1与mf2两个用户分别能

使用口令“mf001-1”“mf002-2”访问/home/httpd/html/backup/目录。

实现步骤:

使用htpasswd建立用户文件

htpasswd –c /home/httpd/secr/.htpasswd mf1
htpasswd –c /home/httpd/secr/.htpasswd mf2

建立组文件

用vi/home/httpd/secr/目录下建立一个文件.htgroup,写入:

myfriend:mf1 mf2

建立.htaccess文件

用vi在/home/httpd/html/backup/目录下建立一个文件.htaccess,写入

以下几行:

AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend

配置工作到此结束,试一试吧!

实例三:混合使用基于主机与基于用户名/口令的认证方式

如果你除了只允许让mf1与mf2两个用户访问外,还想禁止除www.mot.com

外的主机访问这个目录的话,就将/home/httpd/html/backup/.htaccess修改成为:

AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend
order deny,allow
deny from all
allow from www.mot.com

九、解读Apache日志

当你一步步地看到这里的时候,相信你的WWW站点已经建好,并且已经在

Internet上展现出来了。这时你可能就会关心谁造访过你的站点,或者想知道你的Apache服务器现在的运行状态与性能如何。下面我们一起通过解读Apache的日志来实现这个伟大的愿望。

9.1 盯着Apache服务器

Apache允许通过WWW监视服务器的配置信息与运行状态。

1.观看配置信息

如果你的Apache象缺省配置一样加入了mod_info模块的话,你就可以通过访问http://localhost/server-info查看服务器信息。

2.使用状态页

如果你的Apache象缺省配置一样加入了mod_status模块的话,你就可以

通过访问http://localhost/apache-status查看服务器的运行状态信息,其中包括:

¨ 服务器系统的当前时间;

¨ 服务器最近一次重启时间;

¨ 服务器启动后的运行时间;

¨ 到目前为止服务的访问总数;

¨ 到目前为止传输的字节总数;

¨ 服务请求的子进程数;

¨ 空闲子进程数;

¨ 每个进程状态、子进程服务的请求数以及该子进程传输的字节总数;

¨ 每秒平均请求数、每秒传输的字节数、每次请求平均传输字节数;

¨ 目前每个子进程CPU占用及Apache的总的CPU占用率;

¨ 当前主机及处理的请求。

9.2 什么是日志文件

日志文件是Apache工作的记录,Apache包括了mod_log_config模块,它

用来记录日志。在缺省情况下,它用通用日志格式CLF规范来写。

CLF日志文件内对每个请求均有一个单独行,形如:

host ident anthuser date request status bytes

其含义如下:

¨ host客户端主机的全称域名或IP地址;

¨ ident存放客户端报告的识别信息;

¨ authuser如果是基于用户名认证的话,值为用户名;

¨ date请求的日期与时间;

¨ request客户端的请求行;

¨ status返回到客户端的三们数字的HTTP状态码;

¨ bytes除去HTTP头标外,返回给客户端的字节数。

9.3 分析日志文件

有了日志文件后,我们可以利用UNIX的一些工具和一此专门的日志分析工具对日志文件进行分析。

实例一:列出访问过本网站的主机名或IP:

对于这个需求,我们可以通过一个Unix的一个脚本语句来完成:

cat /var/log/httpd/access_log | awk ‘{print $1}'

用上面的方法虽然可以得到访问过本网站的主机名或IP,但是由于有些是多次访问的,我们希望在上面得到的结果的基础上做一些优化,使得列出的表中,每个主机只出现一次。我们可以使用:

cat /var/log/httpd/access_log | awk ‘{print $1}' | wc –l

3.当然,我们可以根据需要选择第三方提供日志分析工具甚至自己开发一些日志分析工具来满足我们的需求。常见的第三方日志分析工具有:WebTrends、Wusage、wwwstat、http-analyze、pwebstats、WebStat Explorer、AccessWatch。

9.4 一些提示

日志一方面是我们分析网站的第一手资料,一方面却是吞噬大量磁盘空间的罪魁祸首。所以别忘了定期转储或删除一些老的日志文件。

十、Apache与代理服务器

代理服务器是位于客户和客户要访问的服务器之间的系统。当客户机使用URL请求访问远程资源时,代理服务器接受该请求并取得该资源以满足客户机的请求。在通常情况下,代理服务器是客户机的服务器,同时也是远程服务器的客户。

代理服务器可以在自己的缓冲区中存储被请求的内容,当这些信息再次被请求的时候,代理服务器就无需再从远程服务器上取了,这样代理服务器就减轻了网络的瓶颈问题。

Apache可以配置成为代理服务器。

10.1 前向代理服务器和逆向代理服务器

1.前向代理服务器

前向代理服务器通常位于用户主机和要访问的远程网络之间。它从远程服务器取得所要求的资源,然后返回给用户,同时存在磁盘上,以供下次使用。

在这种情况下,客户端的主机知道它们正在使用代理服务器,因为每个主机都必须配置为使用代理服务器。

例如,必须告诉WWW浏览器使用代理服务器,它才能使用代理服务器。所有的远程请求都通过代理服务器传输。

这类代理服务器也称为缓冲代理服务器。逆向服务器也可以缓冲数据,但它的作用愉好与前向服务器相反。

前向代理服务器的结构图如下所示:

图4 前向代理服务器

2.逆向代理服务器

逆向代理服务器位于互联网资源前面,逆向服务器从原始服务器找到被请求的资源,并反它返回给用户主机。

与前向代理服务器不同的是,逆向代理服务器的用户并不知道它们连接的是代理服务器而不是资源服务器本身。其结构如下图所示:

图5 逆向代理服务器

10.2 配置代理服务器

为了允许Apache作为代理服务器,需要将ProxyRequests设为On,然后根据你希望代理服务器做什么而增加什么附加配置。无论你希望做什么,你所选的代理配置都应该放入一个特殊的<Directory>容器中。

<Directory proxy:*>

</Directory>

实例一:将私有IP网连到互联网

假设私有网上只有一台计算机被分配了互联网上合法的IP地址,这台计算

机运行Apache代理服务器,ProxyRequest设置为On,并且不需要附加其他配置,所有请求均可由这台代理服务器代理服务。

实例二:让Apache允当远程WWW站点的缓冲

第一步:将ProxyRequest设置为On

第二步:创建配置如下:

<Directory proxy:*>
CacheRoot /www/cache
CacheSize 1024
CacheMaxExpire 24
</Directory>

这里的意思是设置Cache目录为/www/cache;大小为1024KB,即1MB;缓冲中的内容在24小时后失效。

实例三:建立镜像站点(其实这也就是所谓的逆向代理服务器)

第一步:将ProxyRequest设置为On

第二步:创建配置如下:

<Directory proxy:*>
ProxyPass / www.mot.com /
CacheRoot /www/cache
CacheDefaultExpire 24
</Directory>

10.3 一些提示

代理服务器,我们将会在后面的章节中详细介绍,这里只是针对Apache的功能介绍的。用Apache作代理服务器的性能并不高,效果并不好。不建议使用。

(0)

相关推荐

  • Linux Apache Web 服务器(续三)

    . 在这种情况下,在WWW上保证可以使用的唯一认证机制是由HTTP本身提供 的.在标准的Apache服务器实现了这样的认证,它能控制哪些主机可能访问特定的站点或特点的站点的一部分. 这种认证可以分为两种,一种是基于主机的的认证,另一种是基于用户名/口令的认证.由于互联网上的决大多数用户的IP地址是动态获得的,所以基于主机的认证方式并不总适用.所以在大多数情况下,传统的基于用户名/口令的认证方式更为现实.下面我们就对这两种认证的实现做一简要的介绍. 8.1 基于主机的认证方式 在种认证模式顾名思义

  • Linux Apache Web 服务器(续一)

    在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了.你只需要将装上Linux+Apache的主机联入Internet,然后将主页存放到"/home/httpd"目录下即可. 下面介绍一些最主要的配置选项的含义,以便大家用最小的精力.最小的配置准备好服务器. 4.1 httpd.conf httpd.conf是主配置文件.它告诉服务器将如何运行. 一.最重要的配置选项ServerType standalone | inetd 这个

  • Linux Apache Web服务器安全的8种安全设置技巧

    Apache服务器是一款开源的WEB服务器,是由非营利组织Apache软件基金会的支持的,我们很多的虚拟主机.VPS等都会使用Apache服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击.安全漏洞的检测.SQL注入.各种拒绝服务攻击等. 作为我们VPS/服务器用户来说,我们一来需要多做备份确保服务器上网站数据的安全,二来还需要随时的观察我们服务器的监控动向,三来需要关注各种最新漏洞安全的更新脚本,作为基础的应用手段,我们需要确保基础的Apache安全设置,从基础上保证服务器的安全. 第一

  • Linux Apache Web 服务器终极教程

    APACHE系统介绍 根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务器都在使用Apache,是世界排名第一的WEB服务器.Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache. Apache的主要特征是: . 可以运行上所有计算机平台: . 支

  • Linux Apache Web 服务器

    商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务.特定产品和服务的详细说明.宣传广千以及是渐增长的产品销售和服务.商业用途促进了环球信息网络的迅速发展. 如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布.但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上.然后,在LINUX主机上架设一个WEB服务器.你就可以

  • Apache Web 服务器的安装配置方法

    学习如何在 Apache 上托管你自己的网站,这是一个可靠.流行且易于配置的 Web 服务器. 我托管自己的网站已经有很多年了.自从 20 多年前从 OS/2 切换到 Linux 以来,我一直将 Apache 作为我的服务器软件.Apache 是可靠.流行的,且基本的安装配置也很容易.对于更复杂的设置(比如多个网站)也并不是那么困难. Apache Web 服务器的安装和配置必须以 root 身份执行. 防火墙的配置也需要以 root 身份执行. 使用浏览器查看安装配置的结果应该以非 root

  • linux轻量级 Web 服务器第1/2页

    作为 Apache 和其他市场领头产品的补充的专用 HTTP 应用程序   级别: 中级Cameron Laird (claird@phaseit.net), 副总裁, Phaseit, Inc.2007 年 7 月 23 日 最 近几年,市场上出现了很多有趣的 Web 服务器实现,包括 lighthttpd.litespeed 和 mongrel 等.这些 Web 服务器都宣称结合了性能.易管理性.可移植性.安全性和其他相关价值.下面的工程研究将调查轻量级 Web 服务器,以帮助您选择最可能满

  • Apache Web服务器安全配置全攻略

    作为最流行的Web服务器,Apache Server提供了较好的安全特性,使其能够应对可能的安全威胁和信息泄漏. Apache 服务器的安全特性 1. 采用选择性访问控制和强制性访问控制的安全策略 从Apache 或Web的角度来讲,选择性访问控制DAC(Discretionary Access Control)仍是基于用户名和密码的,强制性访问控制MAC(Mandatory Access Control)则是依据发出请求的客户端的IP地址或所在的域号来进行界定的.对于DAC方式,如输入错误,那

  • Apache Web服务器的完全安装指南

    所需软件 apache_1.3.20.tar.gz 主页: http://www.apache.org mod_perl-1.26.tar.gz 主页: http://perl.apache.org openssl-0.9.6b.tar.gz 主页: http://www.openssl.org mod_ssl-2.8.4-1.3.20.tar.gz 主页: http://www.modssl.org php-4.0.6.tar.gz主页: http://php.apache.org webal

  • CentOS 6.5 web服务器apache的安装与基本设置

    CentOS 6.5系统镜像有两个,安装系统只用到第一个镜像即CentOS-6.5-i386-bin-DVD1.iso(32位)或者CentOS-6.5-x86_64-bin-DVD1.iso(64位),第二个镜像是系统自带软件安装包:对于新手不建议安装最小版本,很多基本的工具都需要安装. 具体的也可以参考这篇文章: http://www.jb51.net/os/78318.html CentOS 6.8 服务器系统安装配置图解教程 使用yum安装apache yum install httpd

随机推荐