Apache配置与应用

目录

一、虚拟web主机概述

二、构建虚拟web主机

1.基于域名的虚拟web服务器

1.1为虚拟主机提供域名解析

1.2为虚拟主机准备网页文档

1.3添加虚拟主机配置

1.4设置访问控制

1.5加载独立的配置文件

1.6在浏览器中访问虚拟web主机

2.基于IP地址的虚拟主机

2.1设置虚拟网卡

2.2修改虚拟主机配置 

2.3 修改httpd服务配置文件

2.4在浏览器中访问虚拟web主机

3. 基于端口的虚拟主机

3.1修改虚拟主机配置

3.2 修改httpd服务配置文件

3.3在浏览器中访问虚拟web主机

4.Apache连接保持

 三、web虚拟目录与用户授权限制

1.创建用户认证数据文件

2.添加用户授权配置

3.验证用户访问授权

四、Apache日志分析

1.修改配置文件

 2.访问验证


 

一、虚拟web主机概述

虚拟web主机:同一台服务器中运行多个web站点,其中每个站点实际并不独立占用整个服务器,因此被称为“虚拟” web主机。通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

虚拟web主机特点:

  1. 使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。
  2. Apache虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

httpd服务支持的虚拟主机类型包括以下三种:

  1. 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
  2. 基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。
  3. 基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。 

二、构建虚拟web主机

1.基于域名的虚拟web服务器

1.1为虚拟主机提供域名解析

方法一:部署DNS域名解析服务器,来提供域名解析
修改主配置文件 /etc/named.conf
修改区域配置文件 /etc/named.rfc1912.zones
修改区域数据文件 /var/named/named.localhost


方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系
echo "192.168.88.50 www.new.com" >> /etc/hosts
echo "192.168.88.50 www.old.com" >> /etc/hosts

1.2为虚拟主机准备网页文档

mkdir -p /var/www/html/new
mkdir -p /var/www/html/old
echo "

welcome to new web

" > /var/www/html/new/index.html echo "

welcome to old web

" > /var/www/html/old/index.html

1.3添加虚拟主机配置

#源码编译安装Apache的虚拟主机配置文件路径
/usr/local/httpd/conf/extra/httpd-vhosts.conf
#RPM或YUM安装Apache的虚拟主机配置文件路径
/etc/httpd/conf.d/vhosts.conf

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
                    #设置虚拟主机配置区域
    ServerAdmin [email protected]  #设置管理员邮箱
    DocumentRoot "/var/www/html/new"              #设置网站根目录
    ServerName www.new.com                        #设置web站点的完整域名(主机名+域名)
    ServerAlias www.dummy-host.example.com        #设置网站的别名
    ErrorLog "logs/new.com-error_log"             #设置错误日志文件的路径
    CustomLog "logs/new.com-access_log" common    #设置访问日志文件的路径



    DocumentRoot "/var/www/html/old"
    ServerName www.old.com
    ErrorLog "logs/old.com-error_log"
    CustomLog "logs/old.com-access_log" common


Apache配置与应用_第1张图片

1.4设置访问控制

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
       #设置目录访问权限
        Options None              #不启用任何的服务器特性
        AllowOverride None        #不允许重写Apache默认配置
        Require all granted       #允许所有主机访问

 Options指令:主要用于控制特定目录将启用哪些服务器特性。可以在Apache服务配置文件的虚拟主机配置(VirtualHost)、特定目录配置(Directory)以及 .htaccess 文件中使用。

常用选项:

None 不启用任何的服务器特性
FollowSymLinks 服务器允许在此目录中使用符号连接(软链接)
Indexes 如果输入的网址对应服务器上的一个文件目录,而此目录中又没有Apache配置文件中的DirectoryIndex指令指定的文件
MultiViews 如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入 http://localhost/file/hello ,如果在 file文件夹下并没有 hello子目录,那么服务器将会尝试在 file目录下查找形如 hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的 hello.jpg或者 hello.html。
All 表示除 MultiViews之外的所有特性。这也是Options指令的默认设置。

AllowOverride指令(配置重写):

  •  .htaccess(分布式隐含配置文件):提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含特定指令的文件,其中的指令作用于此目录及其所有子目录。
  • 当AllowOverride设置成None时,相应的配置目录下的.htaccess文件是不被读取的,即无法生效。
  • 当AllowOverride设置成All时,每一次请求访问相应目录下的文件时,都会读取.htaccess文件的配置,意味着原Apache指令会被.htaccess文件中的指令重写。
  • 从性能和安全性考虑,一般都尽可能避免使用.htaccess文件,任何希望放在.htaccess文件中的配置,都可放在主配置文件(httpd.conf)的 段中,而且高效。因此AllowOverride属性一般都配置成None 。

地址限制策略:

  • Require all granted:允许所有主机访问。
  • Require all denied:拒绝所有主机访问。
  • Require local:仅允许本地主机访问。
  • Require [not] host <主机名或域名列表>:允许或拒绝指定主机或域名访问。
  • Require [not] ip :允许或拒绝指定 IP 地址网络访问。

1.5加载独立的配置文件

#源码编译安装的httpd服务主配置文件路径
vim /usr/local/httpd/conf/httpd.conf						
#将484行取消注释
Include conf/extra/httpd-vhosts.conf	#加载独立的配置文件

systemctl restart httpd
netstat -lntp | grep :80            #查看httpd服务是否打开


#RPM或YUM安装的httpd服务主配置文件路径
vim /etc/httpd/conf/httpd.conf		
IncludeOptional conf.d/*.conf		#最后一行已默认开启此项

1.6在浏览器中访问虚拟web主机

访问验证
http://www.new.com
http://www.old.com

Apache配置与应用_第2张图片

Apache配置与应用_第3张图片

2.基于IP地址的虚拟主机

2.1设置虚拟网卡

#临时添加虚拟网卡
ifconfig ens33:0 192.168.88.55/24

#永久添加虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
在ifcfg-ens33:0文件中修改IP地址

Apache配置与应用_第4张图片

2.2修改虚拟主机配置 

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 

    #ServerAdmin [email protected]
    DocumentRoot "/var/www/html/new"
    ServerName www.new.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/new.com-error_log"
    CustomLog "logs/new.com-access_log" common




    DocumentRoot "/var/www/html/old"
    ServerName www.old.com
    ErrorLog "logs/old.com-error_log"
    CustomLog "logs/old.com-access_log" common

Apache配置与应用_第5张图片

2.3 修改httpd服务配置文件

vim /usr/local/httpd/conf/httpd.conf
#在53行插入
Listen 192.168.88.55:80


systemctl restart httpd

Apache配置与应用_第6张图片

2.4在浏览器中访问虚拟web主机

访问验证
http://192.168.88.50
http://192.168.88.55

 Apache配置与应用_第7张图片

 Apache配置与应用_第8张图片

3. 基于端口的虚拟主机

3.1修改虚拟主机配置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

    #ServerAdmin [email protected]
    DocumentRoot "/var/www/html/new"
    ServerName www.new.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/new.com-error_log"
    CustomLog "logs/new.com-access_log" common




    DocumentRoot "/var/www/html/old"
    ServerName www.old.com
    ErrorLog "logs/old.com-error_log"
    CustomLog "logs/old.com-access_log" common

Apache配置与应用_第9张图片

3.2 修改httpd服务配置文件

vim /usr/local/httpd/conf/httpd.conf
#在53行插入
Listen 192.168.88.50:8080

systemctl restart httpd

Apache配置与应用_第10张图片

3.3在浏览器中访问虚拟web主机

访问验证
http://192.168.88.50:80
http://192.168.88.50:8080

 Apache配置与应用_第11张图片

Apache配置与应用_第12张图片

4.Apache连接保持

vim /usr/local/httpd/conf/extra/httpd-default.conf
设置是否打开连接保持功能,后面接OFF表示关闭,接ON表示打开。可以根据网站的并发
请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。
KeepAlive On			

用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,
最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。
MaxKeepAliveRequests 100		

设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过
该时间连接就会自动断开,从而避免客户端占用连接资源。
KeepAliveTimeout 5		

vim /usr/local/httpd/conf/httpd.conf
在494行将注释取消
Include conf/extra/httpd-default.conf

systemctl restart httpd

 三、web虚拟目录与用户授权限制

1.创建用户认证数据文件

#-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。
htpasswd -c /usr/local/httpd/conf/user zhangsan
htpasswd /usr/local/httpd/conf/user lisi

Apache配置与应用_第13张图片

2.添加用户授权配置

vim /usr/local/httpd/conf/httpd.conf
#在最后添加
Alias /test /var/www/html/test          #设置虚拟目录的根目录,/test为虚拟目录名称

        #设置虚拟目录配置区域
        AuthName "Hello"                #定义受保护的邻域名称,会在认证对话框中显示
        AuthType Basic                  #设置认证的类型,Basic表示基本认证
        AuthUserFile /var/local/httpd/conf/user #设置用于保存用户账号和密码的认证文件的路径
        Require valid-user              #开启用户认证,只有认证文件中的合法用户才能访问



其他选项的含义:
authgroupfile /usr/local/httpd/conf/group	#设置用于保存组账号和密码的认证文件的路径
Require user zhangsan						#仅允许指定用户访问
Require group zhangsan						#仅允许指定组访问	

Apache配置与应用_第14张图片

3.验证用户访问授权

访问 http://192.168.88.50:80

Apache配置与应用_第15张图片 Apache配置与应用_第16张图片

四、Apache日志分析

1.修改配置文件

使用Apache 自带 rotatelogs 分割工具,将 Apache 的日志进行按每天的日期自动分割。
vim /usr/local/httpd/conf/httpd.conf
--275行--修改
#分割错误日志
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"		
--305行--修改
#分割访问日志
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined	

#开头的 | 为管道符号。
#-l选项表示使用本地时间为时间基准。
#86400表示一天,即每天生成一个新的日志文件。

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-access_%F.log 86400" combined

Apache配置与应用_第17张图片

 2.访问验证

mkdir /var/log/httpd
systemctl restart httpd

访问验证
http://192.168.88.50

ls /var/log/httpd

你可能感兴趣的:(服务器,linux,运维)