Apache配置与应用

目录:html

1、基于域名的虚拟主机web

2、基于IP地址的虚拟主机vim

3、基于端口的虚拟主机浏览器

4、Apache链接保持bash

5、构建Web虚拟目录与用户受权限制

6、Apache日志分割服务器

7、AWStats 分析系统

 

构建虚拟Web主机网络

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每个站点实际上并不独立占用整个服务器,所以被称为"虚拟"Web主机。经过虚拟 Web,主机服务能够充分和用服务器的矿硬件资源, 从而大大下降网立构建及运行成本。并发

使用httpd服务能够很是方便地构建虚拟主机服务器, 只须要运行一个httpd服务就可以同时支撑大量的web站点。httpd服务支持的虚拟主机类型包括如下三种∶ide

  1. 基于域名∶ 为每一个虚拟主机使用不一样的域名,可是其对应的 IP 地址是相同的。例如,ww.benet.com 和 www.accp.com 站点的 IP地址都是 192.168.80.10。这是使用最为广泛的虚拟 Web 主机类型。
  2. 基于IP地址∶ 为每一个虚拟主机使用不一样的域名,且各自对应的IP地址也不相同。这种方式须要为服务器配备多个网络接口,所以应用并非很是普遍。
  3. 基于端口∶ 这种方式并不使用域名、IP地址来区分不一样的站点内容,而是使用了不一样的TcP端口号,所以用户在浏览不一样的虚拟站点时须要同时指定端 口号才能访问。

1、基于域名的虚拟主机高并发

一、为虚拟主机提供域名解析 

1 方法一:部署DNS域名解析服务器 来提供域名解析
2 
3 方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系
4 echo "192.168.80.10 www.benet.com" >> /etc/hosts
5 echo "192.168.80.10 www.accp.com" >> /etc/hosts

 

 

 

二、为虚拟主机准备网页文档

1 mkdir -p /var/www/html/benet
2 mkdir -p /var/www/html/accp
3 echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
4 echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

 

三、加载虚拟主机配置

 1 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf            #源码编译安装的虚拟主机配置文件路径
 2 #vim /etc/httpd/conf.d/vhosts.conf        #RPM或YUM安装的虚拟主机配置文件路径
 3 
 4 <VirtualHost 192.168.80.10:80>                                #设置虚拟战斗区域
 5 #    ServerAdmin webmaster@dummy-host.example.com            #设置管理员邮箱,这行可忽略
 6     DocumentRoot "/var/www/html/benet"                        #设置网站根目录
 7     ServerName www.benet.com                                #设置Web站点的完整域名(主机名+域名)
 8 #    ServerAlias www.dummy-host.example.com
 9     ErrorLog "logs/benet.com-error_log"                        #设置错误日志文件的路径
10     CustomLog "logs/benet.com-access_log" common            #设置访问日志文件的路径
11 </VirtualHost>
12 
13 <VirtualHost 192.168.80.10:80>                    
14     DocumentRoot "/var/www/html/accp"            
15     ServerName www.accp.com                    
16     ErrorLog "logs/accp.com-error_log"            
17     CustomLog "logs/accp.com-access_log" common
18 </VirtualHost>

四、设置访问控制

1 <Directory "/var/www/html">                                 #设置目录访问权限
2     Options None                                            #不启用任何的服务器特性
3     AllowOverride None                                        #不容许重写Apache默认配置    
4     Require all granted                                        #容许全部主机访问
5 </Directory>

跟上面在一个文件配置里

五、加载独立的配置文件

1 vim /usr/local/httpd/conf/httpd.conf                        #源码编译安装的httpd服务主配置文件路径
2 --483行--取消注释
3 Include conf/extra/httpd-vhosts.conf                        #加载独立的配置文件
4 
5 #vim /etc/httpd/conf/httpd.conf        #RPM或YUM安装的httpd服务主配置文件路径
6 IncludeOptional conf.d/*.conf        #最后一行已默认开启此项
7 
8 
9 systemctl restart httpd 

 

六、在客户机中访问虚拟web主机

http://www.benet.com
http://www.kgc.com

 

 

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

 1 ifconfig ens33:0 192.168.80.100 netmask 255.255.255.0 
 2 
 3 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 4 <VirtualHost 192.168.80.10:80>                    
 5     DocumentRoot "/var/www/html/benet"            
 6     ServerName www.benet.com                    
 7     ErrorLog "logs/benet.com-error_log"            
 8     CustomLog "logs/benet.com-access_log" common
 9 </VirtualHost>
10 
11 <VirtualHost 192.168.80.100:80>                    
12     DocumentRoot "/var/www/html/accp"            
13     ServerName www.accp.com                    
14     ErrorLog "logs/accp.com-error_log"            
15     CustomLog "logs/accp.com-access_log" common
16 </VirtualHost>
17 
18 <Directory "/var/www/html"> 
19     Options None            
20     AllowOverride None        
21     Require all granted        
22 </Directory>
23 
24 vim /usr/local/httpd/conf/httpd.conf    
25 --53行--插入
26 Listen 192.198.80.100:80
27 
28 
29 systemctl restart httpd 
30 
31 在客户机中浏览器访问虚拟 Web 主机
32 http://192.168.80.10
33 http://192.168.80.100

 

 

 

 

 

 

3、基于端口的虚拟主机

 1 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 2 <VirtualHost 192.168.80.10:80>                    
 3     DocumentRoot "/var/www/html/benet"            
 4     ServerName www.benet.com                    
 5     ErrorLog "logs/benet.com-error_log"            
 6     CustomLog "logs/benet.com-access_log" common
 7 </VirtualHost>
 8 
 9 <VirtualHost 192.168.80.10:8080>                    
10     DocumentRoot "/var/www/html/accp"            
11     ServerName www.accp.com                    
12     ErrorLog "logs/accp.com-error_log"            
13     CustomLog "logs/accp.com-access_log" common
14 </VirtualHost>
15 
16 <Directory "/var/www/html"> 
17     Options None            
18     AllowOverride None        
19     Require all granted        
20 </Directory>
21 
22 vim /usr/local/httpd/conf/httpd.conf    
23 --53行--插入
24 Listen 192.198.80.10:8080
25 
26 
27 systemctl restart httpd 
28 
29 在客户机中浏览器访问虚拟 Web 主机
30 http://192.168.80.10:80
31 http://192.168.80.10:8080

 

 

 

 

 

 4、Apache链接保持

1 vim /usr/local/httpd/conf/extra/httpd-default.conf
2 KeepAlive On            #设置是否打开链接保持功能,后面接OFF表示关闭,接ON表示打开。能够根据网站的并发请求量决定是否打开,即在高并发时打开链接保持功能,并发量不高时关闭此功能。
3 
4 MaxKeepAliveRequests 100        #用于设置在一次长链接中能够传输的最大请求数量,超过此最大请求数量就会断开链接,最大值的设置决定于网站中网页的内容,通常设置数量会多于网站中全部的元素。
5 
6 KeepAliveTimeout 5        #设置来自同一个客户端一次链接屡次请求之间的最大间隔时间,即两次请求之间超过该时间链接就会自动断开,从而避免客户端占用链接资源。

5、构建Web虚拟目录与用户受权限制

一、建立用户认证数据文件

1 cd /usr/local/httpd/bin
2 ./htpasswd -c /usr/local/httpd/conf/user zhangsan
3 ./htpasswd /usr/local/httpd/conf/user lisi
4 #-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。
5 
6 cat /usr/local/httpd/conf/user         #确认用户数据文件

二、添加用户受权配置

 1 vim /usr/local/httpd/conf/httpd.conf
 2 --末行添加--
 3 Alias /test /var/www/html/test        #设置虚拟目录的根目录,/test为虚拟目录名称    
 4         
 5 <Directory "/var/www/html/test">                #设置虚拟目录配置区域
 6     AuthName "Hello!"                            #定义受保护的领域名称,会在认证对话框中显示
 7     AuthType Basic                                #设置认证的类型,Basic表示基本认证
 8     AuthUserFile /usr/local/httpd/conf/user        #设置用于保存用户帐号和密码的认证文件的路径
 9     Require valid-user                            #开启用户认证,只有认证文件中的合法用户才能访问
10    #authgroupfile /usr/local/httpd/conf/group    #设置用于保存组帐号和密码的认证文件的路径
11    #Require user zhangsan                        #仅容许指定用户访问
12    #Require group zhangsan                        #仅容许指定组访问        
13 </Directory>

三、验证用户访问受权

1 mkdir -p /var/www/html/test
2 echo "<h1>this is vdir test</h1>" > /var/www/html/test/index.html
3 systemctl restart httpd
4 
5 在客户机中浏览器访问
6 http://192.168.80.10:80/test

 

6、Apache 日志分割

 1 使用Apache 自带 rotatelogs 分割工具,将 Apache 的日志进行按天天的日期自动分割
 2 
 3 vim /usr/local/httpd/conf/httpd.conf
 4 --275行--修改
 5 ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"        #分割错误日志
 6 --305行--修改
 7 CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined    #分割访问日志
 8 
 9 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
10 ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-error_%F.log 86400"
11 CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-access_%F.log 86400" combined
12 
13 #开头的 | 为管道符号。
14 #-l选项表示使用本地时间为时间基准。
15 #86400表示一天,即天天生成一个新的日志文件。
16 
17 mkdir /var/log/httpd            #建立分割后的日志文件保存目录
18 systemctl restart httpd
19 ls /var/log/httpd

 

 

 

7、AWStats 分析系统

AWStats 是使用Perl 语言开发的一款开源日志分析系统,它用来完成自动化的日志统计与分析工做

一、将安装AWStats 所需软件包传到/opt目录下

awstats-7.6.tar.gz

二、安装 AWStats 软件包

cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats

三、为要统计的站点创建配置文件

1 cd /usr/local/awstats/tools
2 ./awstats_configure.pl
3 ......
4 Config file path ('none' to skip web server setup):
5 > /usr/local/httpd/conf/httpd.conf          #输入httpd服务主配置文件的路径
6 Your web site, virtual server or profile name:
7 > www.kgc.com                                  #输入要统计的站点域名
8 
9 其它所有是y 或者 回车

 

 

四、修改自动生成的 awstats 访问权限,加载 CGI 模块(Apache 2.4 以上版本须要加载CGI 模块)

 1 vim /usr/local/httpd/conf/httpd.conf
 2 ErrorLog "logs/error_log"
 3 CustomLog "logs/access_log" combined
 4 ......
 5 --143行--
 6 <IfModule !mpm_prefork_module>
 7     LoadModule cgid_module modules/mod_cgid.so        #取消注释
 8 </IfModule>
 9 <IfModule mpm_prefork_module>
10     LoadModule cgi_module modules/mod_cgi.so        #取消注释
11 </IfModule>
12 ......
13 --跳至末行修改--
14 <Directory "/usr/local/awstats/wwwroot">
15     Options None
16     AllowOverride None
17     #Order allow,deny            #注释掉                    
18     #Allow from all                #注释掉
19     Require all granted            #添加
20 </Directory>

 

 

 

五、修改站点统计配置文件

1 vim /etc/awstats/awstats.www.kgc.com.conf
2 LogFile="/usr/local/httpd/logs/access_log"        #修改访问日志文件位置(因为日志格式问题,不能设置虚拟主机的日志)
3 DirData="/var/lib/awstats"                        #awstats目录默认不存在,须要手动建立
4 
5 
6 mkdir /var/lib/awstats

六、执行日志分析,并设置 cron 计划任务

1 systemctl restart httpd
2 cd /usr/local/awstats/tools/
3 ./awstats_updateall.pl now      #更新数据(根据站点配置文件指定的日志文件路径获取日志数据)
4 #注意,更新数据前最好先把access.log文件清空后从新访问站点,再获取日志数据。
5 
6 crontab -e
7 */5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
8 
9 systemctl start crond

七、访问 AWStats 分析系统站点

1 systemctl stop firewalld
2 systemctl disable firewalld
3 setenforce 0
4 
5 echo "192.168.80.10 www.kgc.com" >> /etc/hosts
6 浏览器访问
7 http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com

八、优化网页地址

 1 vim /usr/local/httpd/htdocs/aws.html
 2 <html>
 3 <head>
 4 <meta http-equiv=refresh content="0;url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
 5 </head>
 6 <body></body>
 7 </html>
 8 
 9 HTML 文件结构解释:
10 <html> </html> :用于HTML文件结构最外层表示的标签    
11 <head> </head> :用于HTML网页内容描述信息的头标签
12 <body> </body> :用于显示网页内容的内容标签
13 <meta> :定义了 HTML 文档中的元数据,好比针对搜索引擎和更新频度的描述和关键词。这里的http-equiv=refresh 用于实现网页自动跳转
14 
15 浏览器访问
16 http://www.kgc.com/aws.html

相关文章
相关标签/搜索