Linux4.3Apache配置与应用

news2024/11/20 6:18:12

文章目录

  • 计算机系统
    • 5G云计算
      • 第一章 LINUX Apache配置与应用及网页优化
        • 一、构建虚拟 Web 主机
        • 二、基于域名的虚拟主机
          • 1.为虚拟主机提供域名解析
          • 2.为虚拟主机准备网页文档
          • 3.添加虚拟主机配置
          • 4.设置访问控制
          • 5.Options指令解释
          • 6.AllowOverride指令解释
          • 7.地址限制策略
          • 8.加载独立的配置文件
        • 三、基于IP地址的虚拟主机
          • 1.创建网卡虚接口
          • 2.添加虚拟主机配置
          • 3.加载独立的配置文件
        • 四、基于端口的虚拟主机
          • 1.添加虚拟主机配置
          • 2.加载独立的配置文件
        • 五、Apache 连接保持
          • 1.Apache 连接保持
        • 六、构建Web虚拟目录与用户授权限制
          • 1.创建用户认证数据文件
          • 2.添加用户授权配置
          • 3.验证用户访问授权
        • 七、Apache 日志分割

计算机系统

5G云计算

第一章 LINUX Apache配置与应用及网页优化

一、构建虚拟 Web 主机

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

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

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

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

二、基于域名的虚拟主机

1.为虚拟主机提供域名解析
echo "192.168.58.60 www.benet.com" >> /etc/hosts
echo "192.168.58.60 www.accp.com" >> /etc/hosts
或
部署DNS域名解析服务器 来提供域名解析

在这里插入图片描述

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.58.60: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.58.60: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>
5.Options指令解释

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

Options指令常用选项

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指令的默认设置
6.AllowOverride指令解释

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

7.地址限制策略
地址限制策略说明
Require all granted允许所有主机访问
Require all denied拒绝所有主机访问
Require local仅允许本地主机访问
Require [not] host <主机名或域名列表>允许或拒绝指定主机或域名访问
Require [not] ip <IP 地址或网段列表>允许或拒绝指定 IP 地址网络访问
8.加载独立的配置文件
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 

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

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

1.创建网卡虚接口
ifconfig ens33:0 192.168.58.100 netmask 255.255.255.0
2.添加虚拟主机配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.58.60: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.58.100: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>
3.加载独立的配置文件
vim /usr/local/httpd/conf/httpd.conf	
--53行--插入
Listen 192.198.58.100:80

systemctl restart httpd

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

四、基于端口的虚拟主机

1.添加虚拟主机配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.80.10: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.80.10:8080>					
    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>

在这里插入图片描述

2.加载独立的配置文件
vim /usr/local/httpd/conf/httpd.conf	
--53行--插入
Listen 192.198.58.10:8080

systemctl restart httpd

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

五、Apache 连接保持

1.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

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

七、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://www.coloradmin.cn/o/603474.html

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

相关文章

10个Chatgpt国内可用镜像网页

自 2022 年底推出以来&#xff0c; ChatGPT一直风靡全球&#xff0c;原因显而易见。革命性的聊天机器人 AI 可以完成数量惊人的任务&#xff0c;从进行对话到撰写整篇学期论文。此外&#xff0c;ChatGPT 可以做很多您不知道的事情——从制作品牌徽标到创作音乐等等。 根据Open…

浮点数在内存中的储存(C语言)

浮点数在内存中的储存 一、浮点数简介二、浮点数在内存中的储存1.IEEE 754标准2.单精度浮点数的内存储存3.双精度浮点数的内存储存4.IEEE 754对有效数字M和指数E&#xff0c;还有一些特别规定 三、总结 一、浮点数简介 浮点数是计算机科学中的一种数据类型&#xff0c;用于存储…

2023第四届中国奢侈品数字化创新峰会

2023第四届中国奢侈品数字化创新峰会将于6月26日-27日在上海召开。 此次会议将线上线下同步举行&#xff0c;重点讨论后疫情时代奢侈品行业主要的数字化战略与趋势&#xff0c;探讨数字化技术如何成为与消费者沟通的有效手段和关键媒介&#xff0c;如何做好线上消费者洞察&…

【HashSet集合】概述和特点

HashSet集合概述和特点 1.HashSet概述 HashSet在java.util包下&#xff0c;使用时需要到爆&#xff0c;它是set接口的一个实现类&#xff0c;它所存储的元素是不可重复的&#xff0c;并且元素都是无序的&#xff0c;HashSet是根据对象的哈希值来确定元素在集合中的存储位置&a…

代码随想录第48天

1.打家劫舍&#xff1a; 动规五部曲分析如下&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i]&#xff1a;考虑下标i&#xff08;包括i&#xff09;以内的房屋&#xff0c;最多可以偷窃的金额为dp[i]。 2.确定递推公式 决定dp[i]的因素就是第…

chatgpt赋能python:Python分词方法——NLP技术的重要组成部分

Python分词方法——NLP技术的重要组成部分 自然语言处理&#xff08;NLP&#xff09;是人工智能领域的热点研究方向之一。而分词作为NLP技术的重要组成部分&#xff0c;对于中文文本的处理尤为重要。Python作为一种便捷、易学、高效的编程语言&#xff0c;拥有丰富的分词工具。…

陪诊系统开发|陪诊小程序源码|陪诊小程序源码开发

随着互联网的发展&#xff0c;人们对于医疗服务的需求越来越高&#xff0c;而移动互联网的普及也让医疗服务得以更加便捷高效地提供给用户。陪诊小程序是一款为顾客提供陪诊服务的应用程序&#xff0c;可以帮助患者更好地接受医疗服务&#xff0c;同时也为医疗服务的提供者带来…

【Collection集合的遍历】

Collection集合的遍历 Iterator&#xff1a;迭代器是集合的专用的遍历的方式&#xff0c;使用时也需要导包 Iterator iterator()&#xff1a;返回集合中元素的迭代器&#xff0c;通过集合的iterator()方法得到迭代器使用过集合的iterator()方法得到的&#xff0c;所以说它是依…

压缩感知重构之分段弱正交匹配追踪法

算法的重构是压缩感知中重要的一步&#xff0c;是压缩感知的关键之处。因为重构算法关系着信号能否精确重建&#xff0c;国内外的研究学者致力于压缩感知的信号重建&#xff0c;并且取得了很大的进展&#xff0c;提出了很多的重构算法&#xff0c;每种算法都各有自己的优缺点&a…

压缩感知重构之基追踪

压缩感知中很重要的一步就是重构算法&#xff0c;重构算法关系着重建信号的质量。基追踪算法是凸松弛法是很有代表性的一种算法。 由于我们所要求解的问题是方程的个数远远大于未知数的个数&#xff0c;用0范数求解是很难求解出来的&#xff0c;这样就找到一种用范数来代替范数…

实训笔记-6.2

实训笔记 6.2一、座右铭二、新学Java知识1、算法1.1 常见的排序算法1.1.1冒泡排序&#xff08;Bubble Sort&#xff09;1.1.1.1 思想1.1.1.2 代码1.1.1.3 算法空间复杂度和时间复杂度的计算 1.1.2线性查找算法1.1.2.1 思想1.1.2.2 代码1.1.2.3 算法空间复杂度和时间复杂度的计算…

【paddlecls】多机多卡-linux(一:环境搭建)

1. 安装docker&#xff08;引擎&#xff09;&#xff1a; &#xff08;https://docs.docker.com/engine/install/ubuntu/&#xff09; Install Docker Engine on Ubuntu To get started with Docker Engine on Ubuntu, make sure you meet the prerequisites, and then follo…

Mysql:SQL性能分析

1 SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次&#xff1a; -- session 是查看当前会话 ; -- global 是查询全局…

03散点密度图(遥感反演数据精度验证)

本文是在模仿中精进数据分析与可视化系列的第三期——散点密度图&#xff0c;本文所用的数据和代码可在公众号GeodataAnalysis回复20230602下载。 一、简介 散点密度图&#xff08;Scatter Density Plot&#xff09;是一种用于可视化二维数据分布的图表。它将散点图和核密度估…

linux【网络编程】之HTTPS协议,一文了解HTTPS是保证通信安全的

linux【网络编程】之HTTPS协议 一、什么是HTTPS协议二、加密和解密2.1 什么是加密解密2.2 为什么需要加密2.3 常见的加密方式2.3.1 对称加密2.3.2 非对称加密2.3.3 数据摘要&#xff08;数据指纹&#xff09;2.3.4 数字签名 2.4 理智选择加密解密方式2.4.1 只使用对称加密✖️2…

OpenMMLab-AI实战营第二期——2.人体关键点检测与MMPose

文章目录 1. 人体姿态估计的介绍和应用2-1. 2D姿态估计概述2.1 任务描述2.2 基于回归2.3 基于热力图2.3.1 从数据标注生成热力图&#xff08;高斯函数&#xff09;2.3.2 使用热力图训练模型2.3.3 从热力图还原关键点 2.4 自顶向下2.5 自底向上2.6 单阶段方法 2-2. 2D姿态估计详…

搞什么飞机?快速排序算法都没搞懂,还敢说自己值20k?

引言 之前面试过一位求职者&#xff0c;其期望薪资是20k&#xff0c;面试时问到了排序算法&#xff0c;结果就是模棱两可&#xff0c;说这说那的… 所以&#xff0c;还是有必要学一些基础算法的 首先&#xff0c;搞明白学算法的重要性和为什么学算法 算法我认为是一种解决问题…

Midjourney摄影真人风,超高清图片一篇足够

欢迎小伙伴光临&#xff0c;本博主打的就是一个真实&#xff0c;关注点赞不迷路&#xff0c;毫无保留奉献&#xff0c;欢迎大家来探讨&#xff0c;以上图片均是万能咒语篇出品。 有些小伙伴感觉我的咒语水分很大&#xff0c;出不来效果&#xff0c;如果出不来效果的&#xff0c…

windows sql server 如何卸载干净?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 windows sql server 怎么卸载干净&#xff1f; 前言一、windows sql server是什么&#xff1f;二、如何卸载干净 1、关闭sql server服务2、到控制面板&#xff0c;卸载sql …

深入Mybatis框架:解读数据源的实现,整合MyBatis框架,事务管理,集成JUnit测试

深入Mybatis框架 文章目录 深入Mybatis框架了解数据源解读Mybatis数据源实现非池化的数据源实现池化的数据源实现 整合Mybatis框架使用HikariCP连接池Mybatis事务管理使用Spring事务管理 集成JUnit测试 前面已经了解了JavaBean的创建和注入到IoC容器中&#xff0c;接下来深入My…