【Web服务器集群】Apache配置与应用

news2024/9/29 15:34:31

文章目录

  • 一、构建虚拟web主机
    • 1.概述
    • 2.httpd服务支持的虚拟主机类型
    • 3.构建虚拟Web主机
      • 3.1基于域名的虚拟主机
      • 3.2基于IP地址的虚拟主机
      • 3.3基于端口的虚拟主机
    • 4.Apache连接保持
    • 5.Apache访问控制
  • 二、Apache日志管理
    • rotatelogs分隔工具
  • 三、总结
    • 1.Web虚拟主机部署步骤
    • 2.网页根目录与虚拟目录

一、构建虚拟web主机

1.概述

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

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

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

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

3.构建虚拟Web主机

3.1基于域名的虚拟主机

为虚拟主机提供域名解析

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

###使用DNS脚本
[root@localhost ~]# vim IP.sh 
#!/bin/bash
read -p "请输入您的IP地址:" LAN_IP
mount /dev/sr0 /mnt &> /dev/null
#rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm &> /dev/null
yum install -y bind
cp /etc/named.conf{,.bak}
sed -i -e '13 s/127.0.0.1/any/' -e '19 s/localhost/any/' /etc/named.conf
cp /etc/named.rfc1912.zones{,.bak}
sed -i '24 a zone "benet.com" IN {\n\ttype master;\n\tfile "benet.com.zone";\n\tallow-update { none; };\n};\n' /etc/named.rfc1912.zones
cp -p /var/named/named.localhost /var/named/benet.com.zone
sed -i -e '2 s/rname.invalid./admin/' -e '9 s/127.0.0.1/'$LAN_IP'/' -e '$a www IN A '$LAN_IP'' -e '10d' /var/named/benet.com.zone
systemctl restart named
[root@localhost ~]# ./IP.sh 
请输入您的IP地址:192.168.145.15
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
###修改域名文件
[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.145.15
###添加其他域名
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
benet.com.zone  dynamic   named.empty      named.loopback
data            named.ca  named.localhost  slaves
[root@localhost named]# vim /etc/named.rfc1912.zones
zone "accp.com" IN {
        type master;
        file "accp.com.zone";
        allow-update { none; };
[root@localhost named]# cp -p benet.com.zone accp.com.zone
[root@localhost named]# systemctl restart named
###查看解析结果
[root@localhost named]# nslookup www.benet.com
Server:		192.168.145.15
Address:	192.168.145.15#53

Name:	www.benet.com
Address: 192.168.145.15

[root@localhost named]# nslookup www.accp.com
Server:		192.168.145.15
Address:	192.168.145.15#53

Name:	www.accp.com
Address: 192.168.145.15

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

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

为虚拟主机准备网页文档

[root@localhost ~]# mkdir -p /var/www/html/{benet,accp}
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
[root@localhost html]# echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

添加虚拟主机配置

[root@localhost html]# cd /usr/local/
###源码编译安装的虚拟主机配置文件路径
[root@localhost local]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
###设置虚拟主机配置区域
<VirtualHost 192.168.145.15:80>
	###设置管理员邮箱,这行可忽略
    #ServerAdmin webmaster@dummy-host.example.com
	###设置网站根目录
    DocumentRoot "/var/www/html/benet"
    ###设置Web站点的完整域名(主机名+域名)
    ServerName www.benet.com
    #ServerAlias www.dummy-host.example.com
    ###设置错误日志文件的路径
    ErrorLog "logs/benet.com-error_log"
    ####设置访问日志文件的路径
    CustomLog "logs/bent.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.145.15:80>
    #ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/accp.com-error_log"
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>
[root@localhost local]# vim /etc/named.conf
options {
        allow-query     { any; };

注意:RPM或YUM安装的虚拟主机配置文件路径vim /etc/httpd/conf.d/vhosts.conf

设置访问控制

[root@localhost local]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#设置目录访问权限
<Directory "/var/www/html">
	#不允许重写Apache默认配置	
    AllowOverride None
    #不启用任何的服务器特性
    Options None
    #允许所有主机访问
    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)的 <Directory>段中,而且高效。因此AllowOverride属性一般都配置成None 。

地址限制策略:

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

加载独立的配置文件

[root@localhost ~]# cd /usr/local/httpd/conf/
###源码编译安装的httpd服务主配置文件路径
[root@localhost conf]# vim httpd.conf
###--483行--取消注释
###加载独立的配置文件
Include conf/extra/httpd-vhosts.conf
[root@localhost conf]# systemctl restart named

注意:RPM或YUM安装的httpd服务主配置文件路径修改/etc/httpd/conf/httpd.conf,然后修改最后一行,已默认开启此项IncludeOptional conf.d/*.conf

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

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

在这里插入图片描述

3.2基于IP地址的虚拟主机

添加虚拟网卡或者再添加一张网卡

[root@localhost ~]# ifconfig ens32:1 192.168.145.100 netmask 255.255.255.0
[root@localhost ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.145.15  netmask 255.255.255.0  broadcast 192.168.145.255
        inet6 fe80::fd54:3fb4:558d:82fb  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:33:c5:93  txqueuelen 1000  (Ethernet)
        RX packets 24534  bytes 10252508 (9.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12081  bytes 1879260 (1.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens32:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.145.100  netmask 255.255.255.0  broadcast 192.168.145.255
        ether 00:0c:29:33:c5:93  txqueuelen 1000  (Ethernet)

修改虚拟主机配置

###修改主配置文件中的监听地址
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf 
Listen 192.168.145.15:80
Listen 192.168.145.100:80

###源码编译安装的虚拟主机配置文件路径
[root@localhost local]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
###设置虚拟主机配置区域
<VirtualHost 192.168.145.15:80>
	###设置管理员邮箱,这行可忽略
    #ServerAdmin webmaster@dummy-host.example.com
	###设置网站根目录
    DocumentRoot "/var/www/html/benet"
    ###设置Web站点的完整域名(主机名+域名)
    ServerName www.benet.com
    #ServerAlias www.dummy-host.example.com
    ###设置错误日志文件的路径
    ErrorLog "logs/benet.com-error_log"
    ####设置访问日志文件的路径
    CustomLog "logs/bent.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.145.100:80>
    #ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    #ServerAlias www.dummy-host.example.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>

在客户机中浏览器访问虚拟 Web 主机

http://192.168.80.10
http://192.168.80.100

在这里插入图片描述

3.3基于端口的虚拟主机

修改虚拟主机配置

###修改主配置文件的监听端口
[root@localhost conf]# vim /usr/local/httpd/conf/httpd.conf 
Listen 192.168.145.15:666
Listen 192.168.145.15:888
###源码编译安装的虚拟主机配置文件路径
[root@localhost conf]# vim extra/httpd-vhosts.conf
<VirtualHost 192.168.145.15:666>
    #ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/var/www/html/benet"
    ServerName www.benet.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/benet.com-error_log"
    CustomLog "logs/bent.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.145.15:888>
    #ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    #ServerAlias www.dummy-host.example.com
    ErrorLog "logs/accp.com-error_log"
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>
[root@localhost conf]# systemctl restart httpd

在客户机中浏览器访问虚拟 Web 主机

在这里插入图片描述

4.Apache连接保持

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

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

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

如果要支持打开httpd-default.conf需要打开/usr/local/httpd/conf/httpd.conf 文件中最后注释行Include conf/extra/httpd-default.conf

5.Apache访问控制

创建用户认证数据文件

[root@localhost ~]# cd /usr/local/httpd/bin
[root@localhost bin]# ./htpasswd -c /usr/local/httpd/conf/user zhangsan
New password: 
Re-type new password: 
Adding password for user zhangsan
[root@localhost bin]# ./htpasswd /usr/local/httpd/conf/user lisi
New password: 
Re-type new password: 
Adding password for user lisi
[root@localhost bin]# cat /usr/local/httpd/conf/user 
zhangsan:$apr1$.My6vxsS$iUdKouegPjZ5yxXPNc1UW1
lisi:$apr1$0u3gAMew$KA/SdEe25Ow1.Zl/NYwWO1

-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。

添加用户授权配置

[root@localhost ~]# cd /usr/local/httpd/conf/
[root@localhost conf]# vim httpd.conf 
###--末行添加--
###设置虚拟目录的根目录,/test为虚拟目录名称
Alias /test /var/www/html/test	

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

验证用户访问授权

[root@localhost conf]# mkdir -p /var/www/html/test
[root@localhost conf]# echo "<h1>this is vdir test</h1>" > /var/www/html/test/index.html
[root@localhost conf]# systemctl restart httpd

在客户机中浏览器访问

http://192.168.145.15:80/test

在这里插入图片描述

二、Apache日志管理

 &emsp随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大;其日志文件占用磁盘空间很大,查看相关信息不方便,所以要对日志文件进行分隔。

rotatelogs分隔工具

使用Apache自带rotatelogs分隔工具,将Apache的日志进行按每天的日期自动分割。

[root@localhost ~]# 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	
###创建分割后的日志文件保存目录
[root@localhost ~]# mkdir /var/log/httpd
[root@localhost ~]# cd /var/log/httpd/
[root@localhost httpd]# ls
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls 
access_20230529.log  error_20230529.log

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

客户端浏览器访问

http://192.168.145.15

在这里插入图片描述

服务器查看日志生成

[root@localhost httpd]# ls 
access_20230529.log  error_20230529.log

三、总结

1.Web虚拟主机部署步骤

  • 设置域名解析(DNS、hosts)。
  • 准备不同web站点的测试i网页文档。
  • 修改虚拟机配置文件
  • 添加网页文档所在目录的访问控制配置。
  • 修改主配置文件。加载虚拟机配置文件。
  • 重启服务,测试。

2.网页根目录与虚拟目录

网页根目录
DocumentRoot "/usr/local/httpd/htdocs"

别名目录(虚拟目录)
Alias /file/var/www/html/file

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

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

相关文章

DN-DETR代码学习笔记

代码地址&#xff1a;GitHub - IDEA-Research/DN-DETR: [CVPR 2022 Oral]Official implementation of DN-DETR 论文地址&#xff1a; https://arxiv.org/pdf/2203.01305.pdf DN-DETR是在DAB-DETR的基础上完成的&#xff0c;DN-DETR的作者认为导致DETR类模型收敛慢的原因在于匈牙…

【Linux升级之路】4_进程控制

文章目录 前言一、【Linux初阶】fork进程创建 & 进程终止 & 进程等待二、【Linux初阶】进程程序替换 | 初识、原理、函数、应用 & makefile工具的多文件编译三、【Linux初阶】进程替换的应用 - 简易命令行解释器的实现结语 前言 本片博客是 Linux操作系统 进程控制…

【周末闲谈】谈谈数学转码这一年来的体会与反思

——我们走了太远&#xff0c;以至于忘了为何出发 前言 笔者本科读的是数学专业&#xff0c;就是每天和数学分析、高等代数、概率论、随机过程等等这些理论打交道的专业&#xff0c;这个专业出来工作好像一般有两个方向就是金融和计算机&#xff0c;我选择了计算机方向。主要…

【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)

ChatGLM-6B模型结构代码解析(单机版) ​ 本文介绍ChatGLM-6B的模型结构&#xff0c;代码来自https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py。 相关博客 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BL…

日撸 Java 三百行day56-57

文章目录 day56-57 kMeans 聚类1.kMeans聚类理解2.代码理解2.1代码中变量的理解2.2代码理解 day56-57 kMeans 聚类 1.kMeans聚类理解 无监督的机器学习算法&#xff0c;其中k是划分为几个簇&#xff0c;并且选择k个数据作为不同簇的聚类中心&#xff0c;计算每个数据样本和聚…

ASRT语音识别系统的部署以及模型的使用(运用篇)

ASRT语音识别系统的部署以及模型的使用(运用篇) 前言 ASRT是一个中文语音识别系统&#xff0c;由AI柠檬博主开源在GitHub上。 GitHub地址&#xff1a;ASRT_SpeechRecognition 国内Gitee镜像地址&#xff1a;ASRT_SpeechRecognition 文档地址&#xff1a;ASRT语音识别工具文…

Python打包成EXE

一、使用Pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 1.2Pyinstaller打包步骤 Pyinstaller -F -w -i apple.ico py_word.py 结果&#xff1a; 运行结果&#xff1a; 二、使用Auto-py-to-exe auto-py-to-exe 是一个用于打包 python 程序…

第二届(2023年)中国国际培育钻石产业发展与创新大会盛大召开!

5月25-26日&#xff0c;由广东省商务厅、中国国际贸易促进委员会广东省委员会&#xff08;广东国际商会&#xff09;、广州市商务局、番禺区人民政府、广东省交易控股集团有限公司/广东省公共资源交易中心指导&#xff0c;广州钻石交易中心&#xff08;简称广钻中心&#xff09…

C语言深度解析--指针

目录 指针 指针的定义&#xff1a; 指针的大小&#xff1a; 指针和指针类型 野指针 指针运算 指针-整数&#xff1a; 指针-指针&#xff1a; 指针的关系运算&#xff1a; 指针和数组 二级指针 指针数组 理解指针的第一步是在机器级上观察指针表示的内容。大多数现代…

第十六届全国大学生信息安全竞赛创新实践赛初赛部分WP AGCTF战队

持续两天的比赛&#xff0c;打的很累&#xff0c;web没有出太多的题&#xff0c;比赛被pwn师傅带飞了&#xff0c;希望下此加油&#xff0c;下边是此次比赛排名。 文章目录 MISC签到卡被加密的生产流量国粹调查问卷pyshell CRYPTO基于国密SM2算法的密钥密文分发可信度量Sign_i…

Java中的深拷贝和浅拷贝介绍

文章目录 基本类型和引用类型Clone方法浅拷贝深拷贝小结 在讲解什么是深拷贝和浅拷贝之前&#xff0c;我们先来了解一下什么是基本类型和引用类型。 基本类型和引用类型 基本类型也称为值类型&#xff0c;分别是字符类型 char&#xff0c;布尔类型 boolean以及数值类型 byte、…

Vue3 项目相关

vite 项目起步式 npm create vite - 1.命名项目名称- 2. 选择技术框架- 3. 进入项目文件夹 npm i 安装依赖&#xff0c;- 4. npm run dev 运行项目配置 package.json 文件 &#xff0c;使项目运行后自动再浏览器中打开。 在 dev 运行命令后添加一个 --open 即可。 "script…

微信小程序初识

微信小程序 因(ios&#xff0c;android)多平台彼此间并不互通&#xff0c;所以开发需要两个不同平台的开发团推队&#xff0c;所以微信小程序因此诞生。 小程序的优点 快速加载更强大的能力原生的体验易用且安全的微信数据开放高效和简单的开发 首先 根据自己的情况安装微…

弄懂软件测试左移和右移,靠它就行

软件测试技术应当贯穿整个软件开发生命周期、对软件产品&#xff08;包括阶段性产品&#xff09;进行验证和确认的活动过程&#xff0c;其核心目标是尽快尽早地发现软件产品中所存在的各种问题 bug—— 与用户需求、预先定义的不一致性。 传统的软件测试流程是 接到项目后参与…

cubemx stm32 pca9685pw模块 16路PWM 可用于舵机驱动 驱动代码

资料 淘宝链接请点这里 淘宝资料资料&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Kda-c7QdZdQ03FBMa0zeRA 提取码&#xff1a;1234 pca9685pw介绍 这个模块是 I2C 通信控制 16 路 PWM 的模块。 所有路的 频率 是统一设置的&#xff0c;所以每一路的频率都一样&a…

java单元测试( Hamcrest 断言)

java单元测试( Hamcrest 断言) 单元测试特征: 1 范围狭窄 2 限于单一类或方法 3 体积小 为什么要编写单元测试&#xff1f; 为了防止错误&#xff08;很明显&#xff01;&#xff09; 而且还可以提高开发人员的生产力&#xff0c;因为单元测试&#xff1a; (1) 帮助实施——在…

网工内推 | 经验不限,国企招网工,IE认证优先,五险一金

01 一九零五&#xff08;北京&#xff09;网络科技有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;职责描述&#xff1a; 1、负责公司内部现有网络配置及调优&#xff1b; 2、负责IT机房的网络和安全的日常维护工作&#xff1b; 3、负责IT机房的紧急故…

轻松掌握redis缓存穿透、击穿、雪崩问题及解决方案(20230529版)

1、缓存穿透 所谓缓存穿透就是非法传输了一个在数据库中不存在的条件&#xff0c;导致查询redis和数据库中都没有&#xff0c;并且有大量的请求进来&#xff0c;就会导致对数据库产生压力&#xff0c;解决这一问题的方法如下&#xff1a; 1、使用空缓存解决 对查询到值是空的…

【Python开发】FastAPI 02:请求参数—路径参数、查询参数

进行接口请求时&#xff0c;请求参数是重中之重了&#xff01;请求参数指客户端向服务端发送请求时&#xff0c;需要传递给服务端的参数&#xff0c;包括路径参数、查询参数、请求体等。举个例子&#xff0c;如果客户端想要获取某个用户的信息&#xff0c;可以向服务端发送一个…

PHPMySQL基础(一):创建数据库并通过PHP进行连接

PHP同样可以对数据库进行连接&#xff0c;并且实现增删改查、登录注册等功能&#xff0c;这一篇写一下怎么使用PHP去连接MySQL数据库 目录 一、创建数据库 1.1 登录页面 1.2 创建数据库 1.3 创建数据库表 1.4 添加表字段 1.5 插入数据 1.6 导出和导入 二、PHP连接数据…