web平台—apache

news/2024/7/7 2:25:52 标签: 前端, apache, 运维, linux, 服务器

web平台—apache

      • 1. 学apache前需要知道的知识点
      • 2. apache详解
        • 2.1 概述
        • 2.2 工作模式
        • 2.3 启动apache网站整体流程
        • 2.4 相关文件保存位置
        • 2.5 配置文件详解
      • 3. apache配置实验
        • 实验1:设置apache的目录别名
        • 实验2:apache的用户认证
        • 实验3:虚拟主机 (重点)
        • 实验4:域名跳转(重点)
        • 实验5:apache+openssl实现https(重点)
        • 实验6:apache日志轮替
        • 实验7:不记录指定文件类型的日志
        • 实验8:apache配置静态缓存
        • 实验9:禁止解析php

apache_2">1. 学apache前需要知道的知识点

HTML语言:超文本标记语言,使用html语言编写的文本叫超文本,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

HTTP协议:超文本传输协议

HTTP使用统一资源标识符(URL)来建立连接和传输数据。是一个基于TCP/IP通信协议来传递数据的协议,属于应用层协议。

URL:统一资源定位符

统一资源定位符是一些数据或文件在互联网上的地址,以及客户需要访问的地址。是标准资源的地址。http://www.kernel.com:80/image/a.jpg

知识拓展:

**URI:**统一资源标志符,URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。

虚拟机:通过创建虚拟硬件,完成系统安装环境部署的方式,必须依托宿主机完成

虚拟主机:web 服务器上的网站平台构建方式,一个网站平台可以同时独立运行多个网站的部署方式

实现虚拟主机的三种方式:

(1)基于 IP 地址(不推荐,因为 IPv4 不够用)

(2)基于 port 地址(不推荐,因为使用不方便)

(3)基于域名的虚拟主机(推荐使用)

apache_30">2. apache详解

2.1 概述

apache具有跨平台和安全性被企业广泛使用,可以通过Perl、python和php等解释器快速编译到服务器中。

apache支持SSL技术、多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。现在web服务器市场使用率最高的是apache的60%,然后是nginx的28%,其次就是tomcat

2.2 工作模式

​ Apache一共有3种稳定的MPM模式(MPM:多进程处理模块),它们分别是prefork、worker、event

在这里插入图片描述

    apache启动之前就已经预先fork(apache中是创建)一些子进程,等待请求进来。
    做这样的原因就是为了减少频繁创建进程和销毁进程。每个子进程只有一个线程,在一个时间点内,只能处理一个请求。
------------------------------------------------------------------
优点:这种模式相对来说是成熟稳定,可以兼容所有新老项目,是这几个模式最安全的
缺点:一个进程长期不销毁会占用更多的系统资源,消耗更多的内存。也不支持高并发请求

在这里插入图片描述

采用多进程和多线程模式混合。
这个也是预先创建几个子进程,然后每个子进程创建了监听线程和工作线程。
当每个用户在请求的时候,会被分配到一个线程来服务。
线程比进程更加轻量,线程是会共享父进程的内存空间,内存负重也会减少一些。
它比prefork更适合高并发的场景下
----------------------------------------------------------------
优点:每个线程占据了更少的内存,总体内存利用率提高了,高并发下表现更优秀。
缺点:必须考虑线程安全的问题。

在这里插入图片描述

    它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题。
    event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。
    HTTP采用keepalive方式减少TCP连接数量,但是由于需要与服务器线程或进程进行绑定,导致一个繁忙的服务器会消耗完所有的线程。
    Event MPM是解决这个问题的一种新模型,它把工作进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限制,此时Event MPM方式是最有效的。

apache中什么是keep-alive场景

	在Apache中,keep-alive场景是指当HTTP请求和响应在单个TCP连接上进行多次传输时的情况。
	这种情况下,客户端和服务器之间的TCP连接在请求完成后不会立即关闭,而是保持打开状态,以便后续请求可以继续在该连接上进行传输。
----------------------------------------------------------------- 
具体来说,keep-alive场景的特点和优势包括:
    1.减少TCP连接建立和关闭的开销:
        对于每个HTTP请求,如果都需要建立一个新的TCP连接,那么在网络传输和服务器资源消耗上都会带来额外的开销。
        而keep-alive允许在同一个TCP连接上进行多次请求和响应,从而减少了这种开销。

    2.提高性能和响应速度:
        由于减少了TCP连接的建立和关闭,服务器可以更快速地响应客户端的请求。
        此外,在包含大量图片的HTML文档中,使用keep-alive可以显著提高加载速度,减少等待时间。
查看方式:
httpd -V | grep -i "server mpm"

指定方式:
在编译时,在选项中指定,--with-mpm=xxx
./configure --help | grep mpm
apache_104">2.3 启动apache网站整体流程

在这里插入图片描述

在这里插入图片描述

2.4 相关文件保存位置

配置文件位置

源码包安装:	PREFIX(安装路径)/etc/httpd.conf(主配置文件)
			PREFIX/etc/extra/*.conf(子配置文件)
rpm包安装:  /etc/httpd/conf/httpd.conf
		   /etc/httpd/conf.d/*.conf
		   /usr/share/doc/httpd-*.*.*
			复制上述文件到/etc/httpd/conf.d/

网页文件位置

源码包安装:	PREFIX/htdocs/
rpm包安装:	 /var/www/html/

日志文件位置

源码包安装:	PREFIX/logs/
rpm包安装:	 /var/log/httpd/
2.5 配置文件详解

针对主机环境的基本配置参数

ServerRoot		/usr/local/apache2 	#apache主目录
Listen			80		#监听端口{Listen 192.168.99.135:80}
LoadModule		php7				#加载的相关模块
User						#用户
Group						#组
ServerAdmin					#管理员邮箱
ServerName		#服务器名(没有域名解析时,使用临时解析。默认不开启)
ErrorLog "logs/error_log					#服务器错误日志
CustomLog "logs/access_log" common			#访问记录日志
DirectoryIndex index.html index.php		#默认网页文件名,优先级顺序
Include  etc/extra/httpd-vhosts.conf    #子配置文件中内容也会加载生效

主页目录即权限

DocumentRoot "/usr/local/apache2/htdocs"   #网页文件存放目录(默认)
<Directory "/usr/local/apache2/htdocs">    #定义指定目录的权限
	#定义指定目录没有任何额外权限
	Options Indexes FollowSymLinks None	
    #定义指定目录拥有所有权限(除去MultiViews以外)
	Options Indexes FollowSymLinks	All		
    #定义指定目录浏览权限(当此目录下没有默认网页文件时,显示目录内容)
	Options Indexes FollowSymLinks	Indexes				
	#没有Indexes这个选项,当被访问目录下没有首页文件时禁止显示文件列表
	
	#准许软链接到其他目录
	Options Indexes FollowSymLinks		
	#准许文件名泛匹配(需要手动开启模块才有效negotiation)
	Options Indexes MultiViews
    
    #定义是否允许目录下.htaccess文件中的权限生效
    #.htaccess中权限不生效
	AllowOverride None  
	#文件中所有权限都生效						
	AllowOverride	All	
    #文件中,只有网页认证的权限生效
	AllowOverride	AuthConfig					
	#设置用户访问控制列表
	Require all granted(denied)
</Directory>
	
<IfModule dir_module>	#此标签用来指定访问到指定目录的首页
    DirectoryIndex index.html index.php	#可以写多个,但是有优先级之分
</IfModule>

httpd三种方法实现资源共享

1.将目录声明为默认网页目录:Document
2.软连接:FollowSymLinks
3.目录别名:alias_module
注意:不管哪种方式将目录作为网页共享目录,都要使用<Directory /dir>声明该目录的权限

apache_200">3. apache配置实验

apache_202">实验1:设置apache的目录别名

实验需求:如果想将一个不在DocumentRoot目录中的文件共享到网站上,并能够让它们留在本来位置而不需要进行移动的话,处理这种情况可以通过建立别名的方式将URL指向特定的目录

​ 编辑主配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 编辑子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf

在这里插入图片描述

apache_225">实验2:apache的用户认证

实验需求:一般情况下网站都是有一个管理后台的网页,而且管理后台就有密码,为了更加安全,可以添加用户认证

​ 1.编辑主配置文件

vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.指定目录下创建权限文件

cd /usr/local/apache2/htdocs/typecho/admin 
#切换该目录下创建.htaccess,并添加以下内容

在这里插入图片描述

​ 3.建立密码文件,加入允许访问的用户(这个用户和系统用户无关)

#建立密码文件,只有添加第一个用户时,采用-c
[root@localhost admin]#  htpasswd  -c  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type
#添加多个用户使用-m参数
[root@localhost admin]#  htpasswd  -m  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type

​ 4.重启apache服务

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

在这里插入图片描述

实验3:虚拟主机 (重点)

实验需求:在一台服务器上实现多个多个虚拟主机(网站空间),来完成一个服务器上实现多个网站

实验准备

​ 1.准备两个域名 (www.typechoblog.com | www.discurz.com)

​ 2.网站主页目录规划 (htdocs目录下的typecho和discurz )

实验步骤

​ 1.修改主配置文件开启文件关联

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.编辑子配置文件,编写虚拟主机标签

[root@localhost htdocs]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf 

在这里插入图片描述

在这里插入图片描述

​ 3.重启服务,验证结果

[root@localhost htdocs]# /usr/local/apache2/bin/apachectl stop
[root@localhost htdocs]# /usr/local/apache2/bin/apachectl start
#注意在windows需要修改本机hosts文件,linux也是
192.168.99.135      www.typechoblog.com
192.168.99.135      www.discurz.com
实验4:域名跳转(重点)

实验需求:一个服务器难免会有多个域名,多个域名要分出主次,不管使用哪个域名最后都要回到主域名,这样就是域名跳转,状态码301是永久跳转,302是临时跳转

实验条件:虚拟主机能正常访问;打开主配置文件开启重写模块

实验步骤

​ 1.开启重写模块

[root@localhost htdocs]# vim /usr/local/apache2/etc/httpd.conf
#打开重写模块
LoadModule rewrite_module modules/mod_rewrite.so

​ 2.修改虚拟主机配置文件

<Directory "/usr/local/apache2/htdocs/typecho/">
        Options Indexes FollowSymLinks   ##准许软链接到其他目录
        AllowOverride All         #开启权限认证文件
        Require all granted        #设置用户访问列表
</Directory>
<VirtualHost 192.168.99.135:80>                  #虚拟主机标签
        ServerAdmin blog@typecho.com             #管理员邮箱    
        DocumentRoot "/usr/local/apache2/htdocs/typecho/"  #网站主目录
        ServerName www.typechoblog.com			#网站域名
        ServerAlias blog.lcy.com				#网站别名
        ErrorLog "logs/blog-error.log"			#错误日志
        CustomLog "logs/blog-access_log" common   #访问日志
</VirtualHost>

<Directory "/usr/local/apache2/htdocs/discurz/">
        Options Indexes FollowSymLinks     
        AllowOverride All
        Require all granted
</Directory>
<VirtualHost 192.168.99.135:80>
        ServerAdmin luntan@discurz.com
        DocumentRoot "/usr/local/apache2/htdocs/discurz/"
        ServerName www.discurz.com
        ServerAlias discurz.lcy.com
        ErrorLog "logs/tan-error.log"
        CustomLog "logs/tan-access_log" common
</VirtualHost>

​ 3.创建规则匹配文件

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.lcy.com
RewriteRule  ^(.*)$   http://www.typechoblog.com/$1 [R=permanent]
[root@localhost ~]# vim /usr/local/apache2/htdocs/discurz/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^discurz.lcy.com
RewriteRule  ^(.*)$   http://www.discurz.com/$1 [R=permanent,L]

​ 4.重启服务器并测试

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
apacheopensslhttps_384">实验5:apache+openssl实现https(重点)

实验需求:https是密文传输协议,比http安全的多。现在使用http+ssl实现https加密功能

实验条件:检查apache是否支持ssl,还有ssl是否安装,已安装就将ssl启动

模块存放目录:/usr/local/apache2/modules
检查模块是否启用:[root@localhost modules]# /usr/local/apache2/bin/apachectl -M | grep ssl

实验步骤

​ 1.开启ssl模块功能

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
LoadModule ssl_module modules/mod_ssl.so #取消注释
Include etc/extra/httpd-ssl.conf	#取消注释

​ 2.ca证书申请

[root@localhost ~]# cd /usr/local/apache2/etc/
[root@localhost etc]# mkdir ssl
[root@localhost etc]# cd ssl
[root@localhost ssl]# openssl genrsa -out blog.key 1024
#建立服务器私钥,生成RSA私钥
	
[root@localhost ssl]# openssl req -new -key blog.key -out blog.csr
#需要依次输入国家,地区,城市,组织,组织单位,Email等信息。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

[root@localhost ssl]#  openssl x509 -req -days 365 -sha256 -in blog.csr -signkey blog.key -out blog.crt
#使用CA服务器签发证书,设置证书的有效期等信息

​ 3.修改etc/extra/httpd-ssl子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
    <VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache2/htdocs"
    ServerName www.typechoblog.com
    ServerAdmin you@example.com
    ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
    TransferLog "/usr/local/apache2/logs/type_ssl_access_log"
    SSLCertificateFile "/usr/local/apache2/etc/ssl/blog.crt"
    SSLCertificateKeyFile "/usr/local/apache2/etc/ssl/blog.key"

#开启调用mod_socache_shmcb模块
[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

​ 4.重启验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

​ 5.强制跳转(只允许https访问,不允许http访问)

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
    RewriteEngine on						#开启转发规则
    RewriteCond %{SERVER_PORT} !^443$		#检查访问端口只要目标不是443的
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]	#301永久跳转,302临时跳转,  L:当前行规则执行完,不在继续执行新的规则
#当使用旧域名访问时,规则会自动跳转到加密的新域名来访问
#若不是通过旧域名访问,会自动跳转到下一条规则
#若不是通过443端口进行访问,那么规则会自动添加https协议使其通过,如果是443端口,则继续使用原域名访问

#重启验证
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
apache_464">实验6:apache日志轮替

实验需求: 设置成(每小时|每天|每周|每月)一个日志文件

实验步骤

​ 1.设置博客的ssl错误记录和博客的ssl访问记录

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
	ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
	TransferLog "/usr/local/apache2/logs/type_ssl_access_log"

​ 2.设置apache分割

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
#错误日志
ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
#访问日志
TransferLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/type_ssl_access_%Y%m%d.log 86400"

​ 3.重启服务并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验7:不记录指定文件类型的日志

实验需求:当一个网站访问量特别大,访问日志就很多,通常是图片、html、css比较占资源,通过配置忽略、不记录一些不必要的日志文件

实验步骤

​ 配置日志不记录图片的访问

vim /usr/local/apache2/etc/httpd.conf
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$"  image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/access_%Y%m%d.log 86400" combined env=!image-request

#将指定的文件标记成image-request,然后在访问日志记录后面加上env=!image-request,表示每次日志轮替的时候都会过滤这些image-request标记好的文件

#重启验证
apache_522">实验8:apache配置静态缓存

实验需求:为了提高用户访问速度,只有进行第一次访问加载网站是调用网站服务器,第二次在加载,是调用本地电脑缓存

实验步骤

1、配置静态缓存

vim /usr/local/apache2/etc/httpd.conf
<IfModule mod_expires.c>		#此模块默认未启用,请手动启用
  ExpiresActive on
  ExpiresByType image/gif "access plus 1 days"
  ExpiresByType image/jpeg "access plus 24 hours"
  ExpiresByType image/png "access plus 24 hours"
  ExpiresByType text/css "now plus 2 hours"
  ExpiresByType application/x-javascript "now plus 2 hours"
  ExpiresByType application/javascript "now plus 2 hours"
  ExpiresByType application/x-shockwave-flash "now plus 2 hours"
  ExpiresDefault "now plus 0 min"
</IfModule>

#或者使用 mod_headers 模块实现:该模块默认启用
<IfModule mod_headers.c>
  #htm,html,txt 类的文件缓存一个小时
  <filesmatch "\.(html|htm|txt)$">
     header set cache-control "max-age=3600"
  </filesmatch>
  #css, js, swf 类的文件缓存一个星期
  <filesmatch "\.(css|js|swf)$">
     header set cache-control "max-age=604800"
  </filesmatch>
  #jpg,gif,jpeg,png,ico,flv,pdf 等文件缓存一年
  <filesmatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
     header set cache-control "max-age=29030400"
  </filesmatch>
</IfModule>

说明: 上面使用的是mod_expires,而下面用的是 mod_headers,要想使用这些模块,必须要事先已经支持。如何查看是否支持,使用命令: /usr/local/apache2/bin/apachectl -M | grep mod_expires

2、重启服务器并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
#验证:
curl  'http://www.typechoblog.com/image/a.jpg' -I
HTTP/1.1 200 OK
Date: Wed, 26 Oct 2016 03:51:26 GMT
Server: Apache/2.2.31 (Unix) PHP/5.5.38
Last-Modified: Tue, 31 May 2016 03:08:36 GMT
ETag: "46891b-16b-5341ab0597500"
Accept-Ranges: bytes
Content-Length: 363
Cache-Control: max-age=86400
Expires: Thu, 27 Oct 2016 03:51:26 GMT
Content-Type: image/jpg
实验9:禁止解析php

实验需求:做网站安全的时候,比如上传某些文件,避免上传的文件有木马或者遭到黑客攻击的时候,就可以执行禁止解析php

实验步骤

vim /usr/local/apache2/etc/httpd.conf
#配置禁止解析php
<Directory /usr/local/apache2/htdocs/data>
    php_admin_flag engine off 
    <filesmatch "(.*)\.php$">
        Order deny,allow
        Deny from all 
    </filesmatch>
</Directory>
#重启验证

http://www.niftyadmin.cn/n/5534906.html

相关文章

SpringCloud Gateway 网关获取或修改接口响应数据

文章目录 前言一、获取响应数据并打印 前言 我们的网关在之前只记录了接口请求日志&#xff0c;响应日志是没有做记录的&#xff0c;在后续别人对接我们开放平台时出现了一些问题没法确认当时的一个数值状态&#xff0c;照成了很多不必要的麻烦&#xff0c;后来决定在网关添加上…

Flutter——最详细(Badge)使用教程

背景 主要常用于组件叠加上圆点提示&#xff1b; 使用场景&#xff0c;消息数量提示&#xff0c;消息红点提示 属性作用backgroundColor红点背景色smallSize设置红点大小isLabelVisible是否显示offset设置红点位置alignment设置红点位置child设置底部组件 代码块 class Badge…

复分析——第8章——共形映射(E.M. Stein R. Shakarchi)

第8章 共形映射(Conformal Mappings) The results I found for polygons can be extended under very general assumptions. I have undertaken this research because it is a step towards a deeper understanding of the mapping problem, for which not much has hap…

鸿蒙登录页面及页面跳转的设计

目录 任务目标任务分析任务实施1.新建工程项目HMLogin2.设计登录页面Index.visual3.设计第二个页面SecondPage4.修改Index.ets代码5.修改SecondPage.ets代码6.运行工程 任务目标 设计一个简单的登录页面&#xff0c;要求可以将第一页的登录信息&#xff0c;传递到第二个页面&a…

办公软件WPS与Office的区别

临近计算机考试很多同学在纠结我是报wps好&#xff1f;还是ms office好&#xff1f;下面就来详细说说。 1、wps属于国内金山公司的办公软件&#xff0c;里面包含word、Excel和PPT。考试是2021年开始的&#xff01; 2、MS&#xff08;Microsoft 微软&#xff09; office属于美…

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型&#xff0c;这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0&#xff0c;这一个节点才会激活&#xff0c;否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导&#xff0c;因此不能…

STM32工业自动化控制系统教程

目录 引言环境准备工业自动化控制系统基础代码实现&#xff1a;实现工业自动化控制系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;工业自动化与优化问题解决方案与优化收尾与总结 1. 引言 工业自动化控制系统利用…

MySQL之备份与恢复(四)

备份与恢复 存储引擎和一致性 3.复制 从备库中备份最大的好处是可以不干扰主库&#xff0c;避免在主库上增加额外的负载。这是一个建立备库的好理由&#xff0c;即使不需要用它做负载均衡或高可用。如果钱是个问题&#xff0c;也可以把备份用的备库用于其他用户&#xff0c;…