Web服务器配置

web服务器是网络应用重要的组成部分,为了能在同一个服务器上为多个站点进行服务,可以定义虚拟主机的不同配置,其配置有基于IP的,基于端口的和基于主机名的三种方法实现。

安装web服务器包

# yum install httpd -y

安装好后的httpd.i386包会生成许多配置文件,主要用到的有/etc/httpd/conf/httpd.conf,它是httpd的主配置文件,包含了许多的配置信息、属性、方法。

基于端口的配置:

要实现基于端口的、基于主机名的、基于IP的配置,需要将中心主机注释掉!而基于端口的还要将监听端口写在配置文件内!

# vim /etc/httpd/conf/httpd.conf

在/etc/httpd/conf.d/下创建配置文件;

# vim /etc/httpd/conf.d/jun.conf

# httpd -t  (检查语法是否有误)

# mkdir /www/{a.com,b.com} -pv

创建好后,在a.com、b.com目录下各自创建一个测试页面!

# vim /www/a.com/index.html

# vim /www/b.com/index.htm

该配的都已经配完,下面进行测试!

在测试前,先将selinux关掉!

# getenforce 

在浏览器上测试80端口:

测试8080端口:

基于端口的配置成功!

基于IP地址的配置:

# vim /etc/httpd/conf.d/jun.conf

# mkdir /www/c.com

# vim /www/c.com/index.html

为了演示,创建一个临时的IP地址

# ip addr add 172.16.15.4/16 dev eth0

一切OK后,重启服务!

# service httpd restart

如图:

基于主机名的配置:

此配置有两中方法,一种是在httpd.conf文件中进行配置其主机名的IP,另一种为在jun.conf配置文件中,写入此内容!这里配置用的为后一种!

# vim /etc/httpd/conf.d/jun.conf

# service httpd restart

配置好后,在本地主机的主机名列表中添加这两个主机名和IP

过程:本地主机:C盘-->Windows-->System32-->drivers-->etc-->hosts文件

如果找不到,可能是系统隐藏了此hosts文件,将文件隐藏设置修改后,即可看到!

在本地浏览器上,测试www.a.com,如图:

测试www.c.com,如图:

有的站点是基于用户认证的,不想让某个主机来访问此站点或当用户访问时要求用户输入用户名及密码,这如何在实现呢?其实这很简单,用一个容器将其需要的属性封装起来,每当执行时通过调用即可!

在jun.conf配置文件中,实现不让172.16.15.1主机访问www.a.com站点,且用户访问www.c.com时要求输入用户名及密码!

# vim /etc/httpd/conf.d/jun.conf

 

文件配置好后,为www.c.com创建几个用户,第一次创建时htpasswd命令要用-c,第二次创建时就不需要了,加-c会覆盖以前的信息!

# httpd -t

# htpasswd -c -m /etc/httpd/.htpasswd jun

以前就绪后,重启服务!

# service httpd restart

在测试前先将httpd默认的主页删除!

# rm /etc/httpd/conf.d/welcome.conf

# service httpd restart

用一个IP地址为172.16.15.1的主机访问www.a.com,结果如图:

访问www.c.com结果如图: