Apache应用和配置

news2024/11/24 1:23:21

目录

  • 构建虚拟 Web 主机
    • 基于域名的虚拟主机
    • 基于IP地址的虚拟主机
    • 基于端口的虚拟主机
  • Apache 连接保持
  • 构建Web虚拟目录与用户授权限制
  • Apache 日志分割

构建虚拟 Web 主机

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

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

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

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

基于域名的虚拟主机

1.为虚拟主机提供域名解析
方法一:部署DNS域名解析服务器 来提供域名解析

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

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

在这里插入图片描述
2.为虚拟主机准备网页文档

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

在这里插入图片描述3.添加虚拟主机配置

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

<VirtualHost 192.168.137.101:80>								#设置虚拟主机配置区域
#    ServerAdmin webmaster@dummy-host.example.com			#设置管理员邮箱,这行可忽略
    DocumentRoot "/var/www/html/benet"						#设置网站根目录
    ServerName www.benet.com								#设置Web站点的完整域名(主机名+域名)
#    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/benet.com-error_log"						#设置错误日志文件的路径
    CustomLog "logs/benet.com-access_log" common			#设置访问日志文件的路径
</VirtualHost>

<VirtualHost 192.168.137.101:80>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>

在这里插入图片描述4.设置访问控制

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

在这里插入图片描述

Options指令解释:
Options指令的主要作用是控制特定目录将启用哪些服务器特性。可以在Apache服务配置文件的虚拟主机配置(VirtualHost)、特定目录配置(Directory)以及.htaccess文件中使用。
Options指令常用选项:
None:表示不启用任何的服务器特性。
FollowSymLinks:服务器允许在此目录中使用符号连接(软链接)。
Indexes:如果输入的网址对应服务器上的一个文件目录,而此目录中又没有Apache配置文件中的DirectoryIndex指令指定的文件(例如: DirectoryIndex index.html index.php),则列出该目录下的所有文件。
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 地址或网段列表>:允许或拒绝指定 IP 地址网络

5.加载独立的配置文件

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		#最后一行已默认开启此项


systemctl restart httpd 

在这里插入图片描述6.在客户机中访问虚拟 Web 主机

http://www.benet.com
http://www.accp.com

在这里插入图片描述

基于IP地址的虚拟主机

ifconfig ens32:0 192.168.137.130/24

在这里插入图片描述

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.137.101:80>					
    DocumentRoot "/var/www/html/benet"			
    ServerName www.benet.com					
    ErrorLog "logs/benet.com-error_log"			
    CustomLog "logs/benet.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.137.130:80>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>

<Directory "/var/www/html"> 
	Options None			
	AllowOverride None		
	Require all granted		
</Directory>

vim /usr/local/httpd/conf/httpd.conf	
--53行--插入
Listen 192.198.80.100:80


systemctl restart httpd 
在客户机中浏览器访问虚拟 Web 主机
http://192.168.137.101
http://192.168.137.130

在这里插入图片描述
在这里插入图片描述重启服务进行访问
在这里插入图片描述

基于端口的虚拟主机

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.137.101:666>					
    DocumentRoot "/var/www/html/benet"			
    ServerName www.benet.com					
    ErrorLog "logs/benet.com-error_log"			
    CustomLog "logs/benet.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.137.101:888>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>

<Directory "/var/www/html"> 
	Options None			
	AllowOverride None		
	Require all granted		
</Directory>

vim /usr/local/httpd/conf/httpd.conf	
--53行--插入
Listen 192.198.137.101:666
Listen 192.198.137.101:888

在这里插入图片描述

在这里插入图片描述
重启服务,在客户机中浏览器访问虚拟 Web 主机
在这里插入图片描述

Apache 连接保持

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

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

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

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

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

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

在这里插入图片描述

2.添加用户授权配置

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>

在这里插入图片描述在这里插入图片描述

3.验证用户访问授权

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

在客户机中浏览器访问
http://192.168.137.101:80/test

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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/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/benet.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-access_%F.log 86400" combined

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

mkdir /var/log/httpd			#创建分割后的日志文件保存目录
systemctl restart httpd

浏览器访问
http://192.168.80.10
ls /var/log/httpd

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【发电机、输变电JDL-5400A 电流继电器 报警信号切除故障JOSEF约瑟】

名称&#xff1a;电流继电器&#xff1b;品牌&#xff1a;JOSEF约瑟&#xff1b;型号&#xff1a;JDL-5400A&#xff1b;触点容量&#xff1a;250V2A&#xff1b;返回时间&#xff1a;≤35ms&#xff1b;整定范围&#xff1a;0.03-19.9A&#xff1b;特点&#xff1a;返回系数高…

应用案例 | 升级OPC Classic到OPC UA,实现安全高效的数据通信

一 背景 OPC&#xff08;OLE for Process Control&#xff0c;用于过程控制的OLE&#xff09;是工业自动化领域中常见的通信协议。它提供了一种标准化的方式&#xff0c;使得不同厂商的设备和软件可互相通信和交换数据。OPC Classic是旧版OPC规范&#xff0c;通过使用COM&…

LabVIEWCompactRIO 开发指南第六章42

LabVIEWCompactRIO 开发指南第六章42 要使用用户控制的I/O示例方法进行编程&#xff0c;请按照以下步骤操作&#xff0c;这些步骤引用了图6.9中的示例程序。 初始化进程 1.调用重置I/O函数。此调用完成后&#xff0c;模块已准备好使用用户控制的I/O采样函数执行采集。必须首…

财务共享五大价值助力央企构建世界一流财务管理体系

如果说小微企业是我国市场经济的毛细血管的话&#xff0c;那么央企就是承载着我国市场发展的主动脉。以规模为导向来看&#xff0c;央企完成了第一次长征&#xff0c;但央企在盈利能力、市场份额、行业地位、专利技术与优势、品牌影响力、市值管理、标准和规则制定话语权等软实…

从1万张模板中找的运营知识图谱,超级牛!

运营现在是时下大家都很熟悉的一个行业&#xff0c;我们熟知的有内容运营、用户运营、产品运营、新媒体运营、活动运营 社群运营、电商运营、品牌运营等多种运营方式。 想要做好运营&#xff0c;其实是需要很丰富的知识体系的&#xff0c;今天就给大家分享一些厉害的运营图谱。…

英伟达曝光超级芯片 黄仁勋:AI已重塑计算机产业

5月29日&#xff0c;英伟达再曝新品“NVIDIA DGX™超级计算机”&#xff0c;为生成式AI语言应用、推荐系统和数据分析工作负载的巨型模型提供硬件支持。 该计算机的核心组件是已经全面投产的英伟达Grace Hopper超级芯片——2000 亿个晶体管&#xff0c;在同一封装内集成了72核…

TC-PERM系列 单/双通道消光比测试仪

单/双通道消光比测试仪可独立进行偏振消光比测试、光功率测试、数字调零、数字校准、手动或自动选择量程&#xff0c;配备 USB(RS232) 接口&#xff0c;上位机软件可自动进行数据测试、 记录、分析&#xff0c;可方便地组成自动测试系统。 广泛应用于光通信设备、光纤、光无源器…

Deep Frequency Filtering for Domain Generalization论文阅读笔记

这是CVPR2023的一篇论文&#xff0c;讲的是在频域做domain generalization&#xff0c;找到频域中generalizable的分量enhance它&#xff0c;suppress那些影响generalization的分量 DG是一个研究模型泛化性的领域&#xff0c;尝试通过各自方法使得模型在未见过的测试集上有良好…

zabbix监控山石防火墙

一、导入监控模板 <Template Net Hillstone StoneOS SNMPv2> 导入前请确保zabbix内置的模板Template Net Network Generic Device SNMPv2存在。 支持山石E系列和X系列防火墙 兼容Zabbix 4.x和5.x。 二、监控内容 SNMP状态和接口速率由Template Net Network Generic De…

2023年互联网Java工程师高级面试八股文汇总(1260道题目附解析)

今年的行情&#xff0c;让招聘面试变得雪上加霜。已经有不少大厂&#xff0c;如腾讯、字节跳动的招聘名额明显减少&#xff0c;面试门槛却一再拔高&#xff0c;如果不用心准备&#xff0c;很可能就被面试官怼得哑口无言&#xff0c;甚至失去了难得的机会。 现如今&#xff0c;情…

基于imx8m plus开发板全体系开发教程5:Cortex-M7开发

前言&#xff1a; i.MX8M Plus 开发板是一款拥有 4 个 Cortex-A53 核心&#xff0c;运行频率 1.8GHz;1 个 Cortex-M7 核心&#xff0c;运行频率 800MHz;此外还集成了一个 2.3 TOPS 的 NPU&#xff0c;大大加速机器学习推理。 全文所使用的开发平台均为与NXP官方合作的FS-IMX8…

Linux Apache 网页优化【网页压缩 网页缓存 隐藏版本号 防盗链】

Apache 网页与安全优化 在企业中&#xff0c;部署Apache后只采用默认的配置参数&#xff0c;会引发网站很多问题&#xff0c;换言之默认配置是针对以前较低的服务器配置的&#xff0c;以前的配置已经不适用当今互联网时代。 为了适应企业需求&#xff0c;就需要考虑如何提升Apa…

网络安全合规-数据分类分级(三)

概念定义 数据分类分级应该将分类和分级分开进行理解。 分类指根据数据的用途和含义去定义数据。更偏向数据治理&#xff0c;而非数据安全治理。 分级指依据数据分类的结果以及数据价值对数据进行分级。是数据安全治理的范畴。 分级类别及依据目前大部分标准将分级定义为核心、…

代码自动生成:低代码与人工智能。

代码自动生成&#xff1a;低代码与人工智能TOC 在当前gpt大行其道的情况下&#xff0c;很多人都对自动生成代码感兴趣。这里将讨论一些与代码自动生成有关的话题&#xff1a; 严格的、闭包的、无歧义的范式系统是代码自动生成的前提与保障&#xff0c;没有这样的范式系统&…

微服务框架01--了解了解Spring Cloud

1.Spring Cloud简介 Spring Cloud是基于Spring Boot的一整套实现微服务的框架。他提供了微服 务开发所需的配置管理、服务注册与发现、断路器、智能路由、微代理、控制 总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是跟 Spring Boot框架一起使用的话&am…

有哪些代码编辑器可以推荐? - 易智编译EaseEditing

以下是一些常用的代码编辑器&#xff0c;并对它们进行简单介绍&#xff1a; Visual Studio Code&#xff1a; Visual Studio Code&#xff08;简称VS Code&#xff09;是由微软开发的免费、跨平台的代码编辑器。 它具有丰富的功能和插件生态系统&#xff0c;支持多种编程语言…

Ansible自动化工具离线部署K8s【1.27版本】

文章目录 一、前提须知二、使用Ansible部署K8S集群步骤三、拓展内容1、添加多个Node节点 一、前提须知 单Master&#xff0c;多Node部署架构需要主机网络互通&#xff0c;没有网络限制需要使用root用户权限进行部署 二、使用Ansible部署K8S集群步骤 第一步&#xff1a;获取离…

通过Nginx来查看Linux中的文件

环境是Centos7.6 一、下载Nginx rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx 二、配置nginx.conf 用yum下载的软件安装的地方比较散&#xff0c;建议多用find查找 cd /etc/nginx vim ng…

6.Ansible Playbooks介绍

什么是Ansible Playbooks&#xff1f; Ansible Playbook是Ansible的编排语言&#xff61;在Playbooks中, 我们定义了我们想要Ansible做什么&#xff61;这是一组你提供给Ansible的指令来发挥它的魔力&#xff61; 例如上面的例子, 它可以像在不同服务器上按顺序运行一系列命令…

Nacos 根据服务名获取所有服务实例的IP和端口列表

需求描述 今天在做一个定时任务数据同步的需求&#xff0c;定时任务是一个单独的微服务&#xff0c;部署了多套&#xff0c;但是全部的可执行任务是在项目启动的时候&#xff0c;加载到内存中进行任务执行。 在这个时候&#xff0c;当在后台管理进行定时任务操作的时候&#…