Apache配置与应用

1、概述

2、httpd服务支持的虚拟主机类型

3、构建虚拟Web主机

4、构建Web虚拟目录与用户授权限制

5、日志分割

6、AWStats分析系统

1、概述:

  虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟"Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。

2、httpd服务支持的虚拟主机类型(三类):

  1. 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP 地址是相同的。例如,www. lic.com和www. accp.com站点的IP地址都是192.168.184.10,这是使用最为普遍的虚拟web主机类型。
  2. 基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广。
  3. 基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虛拟站点时需要同时指 定端口号才能访问。
  • 以yum或rpm方式安装的Apache软件默认首页目录为:/var/www/html
  • 以源码安装的Apache软件默认首页目录为:/usr/local/httpd/htdocs

3、构建虚拟Web主机:

a)基于域名的虚拟主机

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

  • 方法一:部署DNS域名解析服务器,来提供域名解析
  • 方法二:在/etc/hosts文件中临时配置域名与IP地址的映射
echo "20.0.0.16 www.aaa.com" >> /etc/hosts
echo "20.0.0.16 www.bbb.com" >> /etc/hosts

 

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

mkdir -p /var/www/html/aaa
mkdir -p /var/www/html/bbb
echo "<h1>aaa</h1>" > /var/www/html/aaa/index.html
echo "<h1>bbb</h1>" > /var/www/html/bbb/index.html

 

添加虚拟主机位置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf     #源码编译安装的虚拟主机配置文件路径
或者vim /etc/httpd/conf.d/vhosts.conf #RPM或者YUM安装的虚拟主机配置文件路径 <VirtualHost 20.0.0.16:80> #设置虚拟主机区域
注释#ServerAdmin webmaster@dummy-host.example.com #设置管理员邮箱,这个可以忽略
DocumentRoot ”/var/www/html/aaa“ #设置网站根目录
ServerName www.aaa.com
注释#ServerAlinas www.dummy-host.example.com
ErrorLog "logs/aaa.com-error_log" #设置错误日志文件的路径
CustomLog "logs/aaa.com-access_log" common #设置访问日志文件的路径
</VirtualHost> <VirtualHost 20.0.0.16:80>
DocumentRoot ”/var/www/html/bbb“
ServerName www.bbb.com
ErrorLog "logs/bbb.com-error_log"
CustomLog "logs/bbb.com-access_log" common
</VirtualHost>

设置访问控制

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

<Directory "/var/www/html">           #设置目录访问权限
Options None #不启用任何的服务器特性
AllowOverride None #不允许重写Apache默认配置
Require all granted #允许所有主机访问
</Directory>

  

加载独立的配置文件

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

  

在客户机中访问虚拟Web主机

http://www.aaa.com
http://www.bbb.com

  

b)基于IP地址的虚拟主机

配置第二张网卡

ifconfig ens33:0 20.0.0.200/24

  

修改虚拟主机位置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.80.11:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/html/aaa"
ServerName www.aaa.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/aaa.com-error_log"
CustomLog "logs/aaa.com-access_log" common
</VirtualHost> <VirtualHost 192.168.80.200:80>
#ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/html/bbb"
ServerName www.bbb.com
ErrorLog "logs/bbb.com-error_log"
CustomLog "logs/bbb.com-access_log" common
</VirtualHost> <Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>

  

添加监听地址

vim /usr/local/httpd/conf/httpd.conf
Listen 20.0.0.200:80
systemctl restart httpd

 

ip地址访问虚拟主机

http://20.0.0.16
http://20.0.0.200

  

c)基于端口的虚拟主机

修改监听端口

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.80.11:8080>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/html/aaa"
ServerName www.aaa.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/aaa.com-error_log"
CustomLog "logs/aaa.com-access_log" common
</VirtualHost> <VirtualHost 192.168.80.200:800>
#ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/html/bbb"
ServerName www.bbb.com
ErrorLog "logs/bbb.com-error_log"
CustomLog "logs/bbb.com-access_log" common
</VirtualHost> <Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>

  

修改监听端口

vim /usr/local/httpd/conf/httpd.conf
Listen 20.0.0.16:8080
Listen 20.0.0.200:800
systemctl restart httpd

  

使用端口访问虚拟Web主机

http://20.0.0.16:8080
http://20.0.0.200:800

  

4、构建Web虚拟目录与用户授权限制:

a)创建用户认证数据文件

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

  

b)添加用户授权配置

vim /usr/local/httpd/conf/httpd.conf 

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

  

c)验证用户访问权限

mkdir -p /var/www/html/test
echo "<h1>wuyifan</h1>" > /var/www/html/test/index.html
systemctl restart httpd

  

d)在客户机中浏览器访问

mkdir -p /var/www/html/test
echo "<h1>lvbu</h1>" > /var/www/html/test/index.html
systemctl restart httpd

  

5、日志分隔:

a)修改配置文件

使用Apache自带rotatelogs分割工具,将Apache的日志进行按每天的日期自动分割
vim /usr/local/httpd/conf/httpd.conf -----274行附近-----修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400" #分割错误日志 -----304行附近-----修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined #分割访问日志 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #虚拟主机也可以进行分割
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/aaa.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/aaa.com-access_%F.log 86400" combined 注:
1)开头的|为管道符号。
2)-l选项表示使用本地时间为时间基准。
3)86400表示1天,即每天生成一个新的日志文件。 mkdir /var/log/httpd #创建分割后的日志文件保存目录 systemctl restart httpd
ls /var/log/httpd

  

6、AWStats分析系统:

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

a)安装AWStats软件包

b)解压安装AWStats软件包

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

  

c)为要统计的站点建立配置文件

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

  

d)修改自动生成的awstats访问权限,加载CGI模块

vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined

  

e)修改站点统计配置文件

vim /etc/awstats/awstats.www.abc.com.conf
LogFile="/usr/local/httpd/logs/access_log" #修改访问日志文件位置(由于日志格式问题,不能设置虚拟主机的日志)
DirData="/var/lib/awstats" #awstats目录默认不存在,需要手动创建
mkdir /var/lib/awstats

  

f)执行日志分析

systemctl restart httpd
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #更新数据(根据站点配置文件指定的日志文件路径)

  

g)设置cron计划任务

crontab -e                          #编写计划性任务,每5分钟更新一次日志文件数据
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond

  

h)访问awstats分析系统站点

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
echo "20.0.0.14 www.lvbu.com" >> /etc/hosts
浏览器访问
http://www.lvbu.com/awstats/awstats.pl?config=www.lvbu.com

i)优化网页地址

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

  

 

 

Apache——配置与应用的更多相关文章

  1. apache配置 php中没有php5apache2_4.dll

    apache配置 php中没有php5apache2_4.dll 今天,在win7系统下安装Apache+PHP+MySQL时,终于体会到了版本多也不一定是好事,各种不兼容,主要是因为动态包的多少问题 ...

  2. Apache 配置多站点访问「为项目分配二级域名」

    一级域名(baidu.com)也叫作顶级域名,注册一级域名是需要付费的. 而二级域名(image.baidu.com)是一级域名的延伸,所以只要购买了一级域名,二级域名是可以任意配置的. 其实(www ...

  3. 【转】Apache 配置虚拟主机三种方式

    Apache 配置虚拟主机三种方式  原文博客http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html 一.基于IP 1. 假 ...

  4. Tomcat:利用Apache配置反向代理、负载均衡

    本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...

  5. Apache 配置多端口

    Apache 配置多端口,主要是以下步骤 1. 如果电脑是64位的,官网上下载WampServe,装的过程中如果出现msvcp110.dll丢失的话,解决办法如下: 1.1 首先是打开浏览器,在浏览器 ...

  6. linux apache 配置URL地址栏大小写不敏感配置

    1.apache配置 解决如下:把mod_speling.so放到apache目录下的 lib中... 然后修改http.conf文件, 加入:LoadModule speling_module /u ...

  7. CentOS下Apache配置多域名或者多端口映射

    CentOS下Apache默认网站根目录为/var/www/html,假如我默认存了一个CI项目在html文件夹里,同时服务器的外网IP为ExampleIp,因为使用的是MVC框架,Apache需开启 ...

  8. Apache配置HTTPS功能

    apache配置https 一.yum 安装openssl和openssl-devel,httpd-devel 二.生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl ge ...

  9. Apache配置--用户认证(针对目录访问)-update2015-05-02

    通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框. ========================================================= ...

  10. apache配置Options详解

    http://www.365mini.com/page/apache-options-directive.htm Options指令是Apache配置文件中一个比较常见也比较重要的指令,Options ...

随机推荐

  1. C# 高性能对象复制

    需求背景:对象复制性能优化:同时,在对象复制时,应跳过引用类型的null值复制,值类型支持值类型向可空类型的复制 -------------- 1 using Common; 2 using Syst ...

  2. SpringBoot 之 Dao层模拟数据库操作

    单表操作: # src/main/java/com/wu/dao/DepartmentDao .java @Repository public class DepartmentDao { privat ...

  3. 数学库Sage安装和使用

    什么是Sage? Sage是免费的.开源的数学软件,支持代数.几何.数论.密码学.数值计算和相关领域的研究和教学. 可以简单看成一个数学库 下载 国内地址 安装 Windows下安装 下载安装程序即可 ...

  4. linux(CentOS7) 之 ntp时间同步配置步骤

    下 载 百度搜索 ntp rpm 下载(或直接进入官网https://pkgs.org/download/ntp) 搜多ntp,选择centos7 64位下载,ntpdata 是依赖包也要下载 基 础 ...

  5. git 生成忽略文件

    一.在.git的同级目录下打开git bash 二.在命令行输入 三.在生成的文件中添加忽略提交的文件夹名称 来自为知笔记(Wiz)

  6. JSP页面中最常使用的脚本元素

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513082449755374093/ 前面简单说了一个<JSP页面实际上就是Servlet>,接下来说 ...

  7. 【Java】方法

    文章目录 何谓方法 方法的定义 方法调用 方法重载 命令行传参 可变参数 递归 何谓方法 System.out.println(),是什么 Java方法是语句的集合,它们在一起执行一个功能 方法是解决 ...

  8. python中的sort方法和sorted方法

    一.sort()函数 描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数. 语法 sort()方法语法: 1 list.sort(cmp=None, key=No ...

  9. 【刷题-LeetCode】122 Best Time to Buy and Sell Stock II

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  10. vue学习9-更新视图

    <!DOCTYPE html> <html lang='en'> <head>  <meta charset='UTF-8'>  <meta ht ...