Apache的配置和应用

  • 构建虚拟web主机
  • 基于域名的虚拟主机
    • 为虚拟主机提供域名解析
      • 方法一:部署DNs域名解析服务器来提供域名解析
      • 方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系
    • 为虚拟主机准备网页文档
    • 添加虚拟主机配置
    • 设置访问控制
    • 加载独立的配置文件
    • options指令解释
    • Options指令常用选项
    • Allowoverride指令解释
  • 基于IP地址的虚拟主机
  • 基于端口的虚拟主机
  • Apache 连接保持
  • 构建web虚拟日录与用户授权限制
    • 创建用户认证数据文件
    • 添加用户授权配置
    • 验证用户访问授权
  • Apache日志分割
  • Awstats 分析系统
    • 将交装AwStats所需软件包传到/ opt目录下
    • 安装Awstats软件包
    • 为要统计的站点建立配置文件
    • 修改自动生成的 awstats访问权限,加载cGI 模块
    • 修改站点统计配置文件
    • 执行日志分析,并设置cron 计划任务
    • 访问Awstats分析系统站点
    • 优化网页地址

构建虚拟web主机

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

  1. 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。例如,w.benet .com和 ww.acct .com站点的IP地址都是192.168.80.10。这是使用最为普遍的虚拟 web主机类型。
  2. 基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的re地址也不相同。这种方式需要为服务器配备多个网络按口,因此应用并不是非常)泛。
  3. 基于端口:这种方式并不使用域名、Ir地址来区分不同的站点内容,而是使用了不同的nrce端口号,因此用户在浏览不同的虚拟站点时需要同老教定端口号才能访问。

基于域名的虚拟主机

为虚拟主机提供域名解析

方法一:部署DNs域名解析服务器来提供域名解析

方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系

echo "192.168.80.10 www .benet.com" >>etc/hosts
echo "192.168.80.10 www.accp.com" >>/etc/hosts

为虚拟主机准备网页文档

mkdir -p /var/www/html/zp
mkdir -p /var/www/html/zangpeng
echo "<h1>www.zp.com</h1>" >/var/www/htm1/zp/index.html
echo "<h1>www.zangpeng.com</h1>" > /var/www/html/zangpeng/index.html

添加虚拟主机配置

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

<VirtualHost 192.168.243.10:80>                        #设置虚拟战斗区域serverAdmin zp@qq.com                         #设置管理员箱,这行可忽略DocumentRoot "/var/www/html/benet"            #设置网站根目录serverName www.zp.com                      #设置web站点的完整域名(主机名+域名)#serverAlias www.durnny-host.example.com    ErrorLog "logs/zp.com-error_log"            #设置错误日志文件的路径CustomLog "logs/zp.com-access_log" common   #设置访问日志文件的路径
</VirtualHost>

设置访问控制

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

加载独立的配置文件

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

options指令解释

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

Options指令常用选项

None 示不启用任何的服务器特性
FollowSymLinks 服务器允许在此目录中使用符号连接(软链接)
Indexes 如果输入的网址对应服务器上的一个文件目录,而此目录中又没有Rpache配置文件中的DirectoryIndex指令指定的文件
MultivViews 如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件

Allowoverride指令解释

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

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

基于IP地址的虚拟主机

ifconfig ens33:0 192.168.235.20 netmask 255.255.255.0
#添加配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf<Virtualllost 192.168.235.10:80>DocumentRoot "/var/www/htnl/zp"ServerName www.zp.comErrrLoc " logs/ zp. . ccm-error_locg"Cust.omLog "logs / zp.com-access_log" cornmon
</VirtualHost><VirtualHost 192.168.235.20:80>DocumentRoot "/var/www/html/zangpeng"ServerName www.zangpeng.comErrorLog "1ogs/zangpeng.com-error_log”CustomLog "logs/zangpeng.com-access_log"comnon
</VirtualHost><Directory "/var/www/html">Options NoneAllowoverride NoneRequire all granted
</Directory>vim /usr/local/httpd/conf/httpd.conf
--53行--插入
Listen 192.198.235.10:80
syatemctl restart httpd

基于端口的虚拟主机

vim /usr/local/httpd/ conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.235.10:80>DocumentRoot "/var/www/html/zp"ServerName www.zp.comErrorLog"1ogs/zp.com-error_1og"CustomLog "logs/zp.com-access_log"common
</VirtualHost><VirtualHost 192.168.235.20:8080> #8080可以自己设置一个端口号DocumentRoot "/var/www/html/zangpeng"ServerName www.zangpeng.comErrorLog " logsi zangpeng.com-error_log"CustomLog "logs/zangpeng.com-access_log" common
</VirtualHost><Direetory "/var/wwrw/html">Options NoneAllowoverride NoneRequire all granted
</Directory>vim /usr/local/httpd/conf/httpd.conf
--53行--插入
Listen 192.168.235.10:8080
systemctl restart httpd

Apache 连接保持

vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive on                #设置是否打开连接保持功能,后面接oFT表示关闭,按ou表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连按保持功能,并发量不高时关闭此功能。
MaxKeepAliveRequests 10o    #用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。
KeepAliveTimcout 5          #设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而可免客户端占用迕接资准。)

构建web虚拟日录与用户授权限制

创建用户认证数据文件

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

添加用户授权配置

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/conf/user                #设置用于保存用户账号和密码的认证文件的路径Require valid-user                                     #开启用户认证,只有认证文件中的合法用户才能访问#authgroupfile /usr/local/httpd/conf/group             #设置用于保存组账号和密码的认证文件的路径#Require user zhangsan                                 #仅允许指定用户访问#Require group zhangsan                                #仅允许指定组访问
</Directory>

验证用户访问授权

mkdir -p /var/www/html/test
echo "<h1> woshicaiyimingtaba</h1>" > /var/www/htm1/test/index.html
systemct1 restart httpd

Apache日志分割

使用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/accesss_%Y%m%d.log 86400"combined
#分割访问日志
vim /usr/local/httpd/ conf/extra/httpd-vhosts.conf
ErrorLog "l/ /usr/local/bin/rotatelogs -l /var/log/httpd/zp.com-error_%F.log 86400"
customLog "//usr/local/bin/rctatelogs -l /var/log/httpd/zp.com-access_%F.log 86400" combined#开头的l为管道符号。
#-l选项表示使用本地时间为时间基准。
#86400表示一天,即每天生成一个新的日志文件。
mkdir /var/log/httpd  #创建分剖后的日志文件保存目录systemctl restart httpd
ls /var/log/httpd

Awstats 分析系统

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

将交装AwStats所需软件包传到/ opt目录下

awstats-7.6.tar-gz

安装Awstats软件包

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

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

cd / usr ; local/ awstats/tools./awstats_configure.p1
.....
Config file path ( 'none' to skip web server setup) :
>iusr/ local/htt.pi/ conf/ htt.pd.conf          #输入htt.pd服务主配置文件的路径
Your web site, virtual server or profile name :
> www.zp.com                                  #输入要统计的站点域名

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

vim fusr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog ""logs / access_log"combined
--143行--
....-:
<IfModule ! mpm prefork module>LoadModulecgid modulc modules/ mod_cgid.so  #取消注释
</IfModule>
<IfModule mpm prefork_module>LoadModule cgi_module modules/mod_cgi.so      #取消注释</IfModule>
......
--跳至末行修改--
<Directory "/usr/ local i awst.ats / wwwroot." >Options NoneAllowoverride None                  #注释掉#Oorder allow , deny                #注释掉#Allow from all                     #注释掉Require all granted                 #添加
</Directory>

修改站点统计配置文件

vim iete/awstats/awstats.www.zp.com.conf
LogFile="/usr/local/httpd/logs/access_log"  #修改访问日志文件位置
DirData="/var/lib/awstats"               #awstats目录默认不存在,需要手动创建

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

systemctl restart httpd
cd /usr/local/awstats/tools
./awstat.s_updateall.pl now             #更新数据(根据站点配置文件指定的日志文件路径)
crontab -e
*/5 * * * *   /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond

访问Awstats分析系统站点

systemctl stop firewalld
systemctl disable firewalld
setenforce 0echo "192.168.235.10 www.zp.com” >> etc/hosts

优化网页地址

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

Web服务之Apache的配置和应用相关推荐

  1. Web服务搭建 - Apache

    Web服务搭建 - Apache Web服务器搭建 Web服务介绍 服务器与浏览器利用HTTP协议进行交互的过程 统一资源定位符URL Apache服务器 配置Apache服务 搭建基础web服务 建 ...

  2. Linux web服务安装apache 思路 (源码编译,自己定义服务)

    1. 首先卸载系统里本身自带的httpd服务 2. 然后下载源码包 解压缩到src 源码包程序目录 3. 进入源码包(解压缩后的) 4. 配置 5. 编译 6. 安装 7.做成系统启动服务 直接解决依 ...

  3. Spring集成–配置Web服务客户端超时

    介绍 在Spring Integration的支持下,您的应用程序可以使用出站Web服务网关来调用Web服务. 调用由该网关处理,因此您只需要担心构建请求消息和处理响应. 但是,使用这种方法并不明显, ...

  4. Web服务-Nginx网页服务

    Nginx网页服务 Nginx网页服务 一.编译安装Nginx服务 1.关闭防火墙,将安装Apache所需软件包传到/opt目录下 2.安装依赖包 3.创建运行用户.组(Nginx 服务程序默认以 n ...

  5. java web 教程_Java Web服务教程

    java web 教程 Welcome to the Java Web Services Tutorial. Here we will learn about web services, useful ...

  6. LabVIEW创建Web服务

    LabVIEW创建Web服务 在LabVIEW项目中开发Web服务,组合并配置构成Web服务的VI和其他文件.按照下列步骤创建一个Web服务项目和两个HTTP方法VI. 创建一个组织Web服务文件的L ...

  7. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

  8. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  9. Apache Web服务器资源使用限制配置

    <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />以下内 ...

最新文章

  1. 基于Matlab的BP神经网络在语音特征信号识别中的应用
  2. ORACLE等待事件:direct path write
  3. apigateway-kong(四)负载均衡理论及实现
  4. update yum 到指定版本_yum语法及常用命令汇总
  5. excel取整函数_Excel中的这些烧脑问题,你遇到过几种?
  6. eclipse常用功能:代码重构(变量批量重命名)、自定义注释、代码模板、打开断言
  7. Spring Cloud Alibaba Nacos Confifig是什么
  8. openjdk 使用_如何在OpenJDK中使用ECC
  9. 【32位win7一键扫雷】32位win7系统自带扫雷游戏逆向分析之一键扫雷(附VS代码工程文件、可执行文件和OD分析缓存文件)
  10. CSS未知宽高元素水平垂直居中
  11. 电子计算机职专东校区在哪,自贡计算机电子信息职业技术学校位置在哪儿
  12. 【转】C# 数据流详解(FileStream、MemoryStream、NetworkStream等类)
  13. bootstrap-switch 不起作用 class处显示代码_注解KafkaListener不起作用,到底发生了啥?...
  14. GNS3新手安装教程
  15. Depth from Motion:探索突破纯视觉 3D 检测瓶颈
  16. Java求两点的中点坐标_计算两点坐标距离与中点坐标
  17. USACO Palindromic Squares 回文平方数
  18. 个人或小微企业网络从IPv4升级到IPv6/v4硬件配置及注意事项
  19. 上海车艺尚教你如何DIY原厂8.8寸大屏幕----宝马车友必看
  20. Blockchain技术之区块链的概念和起源以及区块链的运行方式、发展前景和应用领域分析

热门文章

  1. 美国SigmasTek泰克免维护蓄电池的设计寿命_优点
  2. Java中Iterator用法整理
  3. Linux--数据链路层--ARP协议--0319-21
  4. win10可选功能添加失败解决方法
  5. java 用json删除注释
  6. Win10提示错误代码0xc0000001的解决办法
  7. 如何设置与查看Linux系统中的环境变量?
  8. 如何设计一份靠谱的设计稿?Design Play实时预览功能改善您的设计工作流程
  9. 我们学校有一个计算机室英文,[转载]25  (四年级下册)第一单元   我们的学校--英汉对照...
  10. SPRING BOOT + VUE仿微信聊天