WEB服务器也称为WWW(WORLD WIDE WEB)即是所谓的万维网服务器,主要功能是提供网上信息浏览服务。
最常用的大型Web服务器是Apache和微软的Internet信息服务器(Internet Information Server,所谓的IIS服务器)、IBM WebSphere以及BEA WebLogic等。
Internet上的服务器也称为Web服务器,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。Web服务器的工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。
Windows,Linux与Unix这3个操作系统是架设Web服务器比较常见的操作系统。Linux的安全性能在这3个操作系统中最高,可以支持多个硬件平台,其网络功能比较强大,所以现在使用的人数也是最多的。
下面我们来介绍一下linux比较常见的apache服务器,这里我使用的redhat5.4下自带的apache2.2.3的。
httpd-2.2.3-22.el5.i386.rpm apache主程序
httpd-devel-2.2.3-22.el5.i386.rpm 开发工具
httpd-manual-2.2.3-22.el5.i386.rpm 配置手册
system-config-httpd-1.3.3.3-1.el5.noarch.rpm 图形配置
要学习apache必须先知道apache的安装与配置,现在我们来安装一下redhat自带的apache软件。
安装apache可以使用两种方式,第一种是rpm的安装。第二种是yum安装。个人比较偏爱于yum的安装方式,因为yum安装很好的解决了依赖关系,自己寻找依赖包进行安装,比较方便。关于安装方式在前面的博客中我已经介绍过了,我就不多介绍了。
由于我已经安装过了 所以显示的是已经安装最新版了 然后启动apache服务并且查看端口
输入本地环回地址可以发现,我们web服务器已经安装成功了
如果想配置apache就必须知道apache配置的相关目录
例如:/etc/httpd/ 这是apache服务器的配置目录
/etc/httpd/conf/httpd.conf apache服务器的配置文件
/var/www/html apache服务器默认的web站点目录
/var/log/httpd/ apache服务器的运行日志目录
我们可以自己添加一个网页到自己的web服务器然后查看一下效果
从上面的目录我们知道apache的web默认站点是/var/www/html/
进入文件夹我们发现是空的,我们要建立一个主页
我们刷新一下页面可以发现自己所建立的web网页
输入本地环回地址后你可以发现web服务器自动寻找你所建立的默认的站点,因为这都是在/etc/httpd/conf/httpd.conf文件中配置的,可以自行定制你的主页名称。如果你想更改站点目录这时需要更改相关文件配置,可以在配置文件的这个位置修改。
我们在企业中会让工作人员下载公司的相关文件,所以我们来介绍一下怎么建立自己web资源库。首先要建立资源库文件夹mkdir /Download向此文件夹内添加内容,然后修改apache的配置文件/etc/httpd/conf/httpd.conf。可以参照配置文件的目录的配置,然后制定自己的目录
然后重启apache服务,进入本地的/Download目录可以发现可以供下载
Linux的一个文本浏览器,不用在浏览器中查看,可以尝试一下
# rpm -ivh lynx-2.8.5-28.1.el5_2.1.i386.rpm
# lynx http://10.106.6.254
在企业的网络中是连到internet网中的,大家要知道你建立的资源库是不安全的,所以要提高网络的安全性,必须实施web的安全管理,在apache的配置文件中我们可以找到安全的配置内容
AllowOerride选项是控制验证的开关All表示开启,None表示关闭,下面的Allow选项,那就是控制访问IP的,还有一个文件.htaccess(站点根目录下)文件,这个是用于描述访问控制的文件,里面内容设置一些基本的访问规则,例如
authuserfile /var/www/.htpasswd //合法用户的用户名和密码,用工具生成
authtype basic [md5] //认证类型
authname "please input your name and password"//登录提示
require valid-user //所有.htpasswd文件中的用户都能访问,也可以指定特定用户名
举一个例子,要想让企业网外部的用户拒绝访问可以设置访问策略
<Directory "/tmp/pub">
Options Indexes
Allowoverride All //身份认证
Order allow,deny //顺序很重要不然就无法实现访问控制
Allow from all //允许所有IP地址
Deny from 192.168.1.1 //被拒绝的IP地址
</Directory>
然后需要修改.htaccess
编辑网站根目录下的.htaccess文件(没有发现这个文件不要郁闷,因为它是默认不存在)
# vim /var/www/html/.htaccess 内容如下
有了权限的设置必须生成.htpasswd文件来通过验证,使用htpasswd指令,使用方法
htpasswd使用格式
htpasswd [ -c ] [ -m ] [ -D ] passwdfile username
这里的用户不是系统的登录用户,是随机生成的,进入到web服务器的根目录下
例如要允许企业内部用户user1登录,密码都是123456
第一次使用要加-c参数
然后重启apache服务出现下面的对话框,说明1访问策略已经生效了
虚拟站点的实现
服务器是面向N多个用户的吧,可是IP是有限的,一台服务器就挂载一个网站就太浪费了,如果想要挂载多个站点,可以通过下列五种方法实现,主要实现第五种虚拟主机头用处比较大
1.物理目录
2.虚拟目录
目录可以在任何位置 名称可以使用别名
3.基于多个ip地址
4.基于端口
5.基于主机头
使用少量ip 多个名字 标准端口 多个站点
首先修改httpd.conf文件,添加以下内容
去掉注释
然后建立website1和website2的站点目录和测试主页
# mkdir /var/www/html/website1 /var/www/html/website2
# echo “Here is website1”>/var/www/html/website1/index.html
# echo “Here is website2”>/var/www/html/website2/index.html
step 3:重新启动apache服务器
# service httpd restart
step 4:集中测试
因为没有在外部因特网测试,所以要修改客户机的hosts文件,加入以下条目
192.168.10.10 www.website1.com
192.168.10.10 www.website2.com
打开客户机浏览器访问站点目录