2.23日学习打卡----初学Nginx(二)

news2025/2/25 16:18:46

2.23日学习打卡

目录:

  • 2.23日学习打卡
  • 一. Nginx 虚拟主机
    • 虚拟主机的分类
    • Nginx支持三种类型的虚拟主机配置
    • Nginx虚拟主机单网卡多IP配置
    • Nginx虚拟主机_基于域名虚拟主机配置
    • Nginx虚拟主机基于多端口的配置4
  • 二. Nginx 核心指令
    • root和alias指令的区别
    • return指令
    • rewrite指令
    • rewrite实战域名跳转
    • if指令
    • set和break指令
    • Gzip压缩指令

一. Nginx 虚拟主机

概述
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。

虚拟主机的分类

在这里插入图片描述

Nginx支持三种类型的虚拟主机配置

基于IP的虚拟主机
在这里插入图片描述

基于端口的虚拟主机
在这里插入图片描述
基于域名的虚拟主机
在这里插入图片描述

Nginx虚拟主机单网卡多IP配置

在这里插入图片描述

通过不同的IP区分不同的虚拟主机,此类虚拟主机对应的企业应用非常少见,一般不同业务需要使用多IP的常见都会在负载均衡器上进行VIP绑定,而不是在Web上通过绑定IP区分不同的虚拟机。

需求

一台Linux服务器绑定两个ip:192.168.66.100、192.168.66.101 访问不同的ip请求不同的html目录,即: 访问http://192.168.66.100将访问“html101”目录下的html网页 访问http://192.168.66.101将访问“html99”目录下的html网页

Linux绑定多IP

Linux操作系统允许绑定多IP。是在一块物理网卡上可以绑定多个lP地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机。但是在绑定多IP时需要将动态的IP分配方式修改为静态的指定IP。

将动态IP修改为静态IP

[root@node1 ~]# cd /etc/sysconfig/network-scripts
[root@node1 network-scripts]# ls
ifcfg-ens33
[root@node1 network-scripts]# vim ifcfg-ens33 
BOOTPROTO="static"
IPADDR0=192.168.66.100
IPADDR1=192.168.66.101
[root@node1 network-scripts]# service network restart  # centos6、7重启网卡
[root@node1 ~]# systemctl restart network #centos7重启网卡
[root@node0 network-scripts]#reboot  #各种发行版都是可以的
#CentOS8重启网卡 nmcli c reload ens33

修改Nginx的配置文件完成基于IP的虚拟主机配置

Nginx的配置文件nginx.conf

如上述配置文件所示,主要由5个部分组成:

main:用于进行nginx全局信息的配置

events:用于nginx工作模式的配置

http:用于进行http协议信息的一些配置

server:用于进行服务器访问信息的配置

location:用于进行访问路由的配置

修改配置nginx.conf

[root@node1 network-scripts]# vim /usr/local/nginx/conf/nginx.conf
#一个Server就是一个虚拟主机
  server {
    listen    80;
    #为虚拟机指定IP或者是域名
    server_name  192.168.66.100;
    #主要配置路由访问信息
    location / {
      #用于指定访问根目录时,访问虚拟主机的web目录
      root  html100;
      #在不指定访问具体资源时,默认的展示资源的列表
      index index.html index.htm;
     }  
    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
      root  html;
     }
   }
  #一个Server就是一个虚拟主机
  server {
    listen    80;
      #为虚拟机指定IP或者是域名
    server_name  192.168.66.101;
      #主要配置路由访问信息
    location / {
      #用于指定访问根目录时,访问虚拟主机的web目录
      root  html101;
      #在不指定访问具体资源时,默认的展示资源的列表
      index index.html index.htm;
     } 
    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
      root  html;
     }
   }
}

Nginx虚拟主机_基于域名虚拟主机配置

在这里插入图片描述
需求

两个域名指向同一个nginx服务器,用户访问不同的域名时显示不同的内容。

域名规划:

1, www.baidu.com => 前台

2, www.jiangyu.website =》 后台

修改windows的hosts文件配置域名与ip的映射
文件路径:C:\Windows\System32\drivers\etc\hosts

192.168.66.100 www.baidu.com
192.168.66.100 www.jiangyu.website

修改nginx.conf配置文件

server {
  listen    80;
    #为虚拟机指定IP或者是域名
  server_name  www.baidu.cn;
    #主要配置路由访问信息
  location / {
  #用于指定访问根目录时,访问虚拟主机的web目录
    root  baidu;
  #在不指定访问具体资源时,默认的展示资源的列表
    index index.html index.htm;
   }
  error_page  500 502 503 504  /50x.html;
  location = /50x.html {
    root  html;
   }
}
#一个Server就是一个虚拟主机
server {
  listen    80;
#为虚拟机指定IP或者是域名
  server_name  www.jiangyu.website;
#主要配置路由访问信息
  location / {
  #用于指定访问根目录时,访问虚拟主机的web目录
    root  jiangyu;
  #在不指定访问具体资源时,默认的展示资源的列表
    index index.html index.htm;
   } 
  error_page  500 502 503 504  /50x.html;
  location = /50x.html {
    root  html;
   }
}

准备需要的目录和html页面:

mkdir baidu
cd baidu
echo "this is baidu" >index.html
mkdir jiangyu
cd jiangyu
echo "this is jiangyu" >index.html

重启Nginx服务

[root@node1 html]# ./nginx -s reload

Nginx虚拟主机基于多端口的配置4

在这里插入图片描述

通过不同的端口来区分不同的虚拟主机。此类虚拟主机对应的企业应用主要为公司内部的网站。

需求
Nginx对提供8888与9999两个端口的监听服务

请求8888端口则访问html8888目录下的index.html

请求9999端口则访问html9999目录下的index.html

还原IP地址为192.168.66.100:

vim /etc/sysconfig/network-scripts/ifcfg-ens33
#将:
IPADDR0=192.168.66.100
IPADDR1=192.168.66.101
#改为
IPADDR=192.168.66.100
#重启网络服务
systemctl restart network

修改Nginx的配置文件完成基于端口的虚拟主机配置

#一个Server就是一个虚拟主机 基于端口
server {
   listen    8888;
    #为虚拟机指定IP或者是域名
   server_name 192.168.66.100;
    #主要配置路由访问信息
   location / {
  #用于指定访问根目录时,访问虚拟主机的web目录
     root  html8888;
  #在不指定访问具体资源时,默认的展示资源的列表
     index  index.html index.htm;
   }
   error_page  500 502 503 504  /50x.html;
   location = /50x.html {
     root  html;
   }
}
#一个Server就是一个虚拟主机
server {
   listen    9999;
    #为虚拟机指定IP或者是域名
   server_name 192.168.66.100;


    #主要配置路由访问信息
   location / {
        #用于指定访问根目录时,访问虚拟主机的web目录
     root  html9999;
        #在不指定访问具体资源时,默认的展示资源的列表
     index  index.html index.htm;
   }
   error_page  500 502 503 504  /50x.html;
   location = /50x.html {
     root  html;
   }
}

准备需要的目录和html页面

mkdir html8888
cd html 8888
echo "this is html8888" >index.html
mkdir html9999
cd html 9999
echo "this is html9999" > index.html

二. Nginx 核心指令

root和alias指令的区别

区别

  • 共同点 : root和alias两者都都是用来指定URI和磁盘文件的映射关系;
  • 区别: root会将定义路径与URI叠加;而alias只取定义路径;

root示例
客户端请求www.test.com/images/1.jpg,则对应磁盘映射路径/opt/nginx/html/images/images/1.jpg

location /images {
   root /opt/nginx/html/images;
   index index.html index.htm;
}

注意:
也就是说使用root 请求的真实路径是 rootpath + /uri ,也就是文件目录 + URI / 后面的内容。

alias示例
客户端请求www.test.com/images/1.jpg,则对应磁盘映射路径/opt/nginx/html/images/1.jpg

location /images {
   alias /opt/nginx/html/images/;  //最后面一定要加 "/"
   index index.html index.htm;
}

注意:
使用alias uri和文件路径进行了叠加,其实就是alias + 请求的文件

return指令

在这里插入图片描述
return功能

  • 停止处理请求,直接返回响应码或重定向到其他URL;
  • 执行return指令后,location中后序指令将不会被执行;

return语法结构

  • return code [text]; # 如果返回2XX的,text才有意义,text会在body中;
  • return code URL; #主要用于重定向;
  • return URL; #须以http或者https开头的;

常用状态码:

200 请求成功
301 永久转移到其他URL
404 请求资源不存在
500 内部服务器错误

上下文

server |  location | if

在这里插入图片描述
示例
code + text

location  /  {
   return 200 'your success';
}

请求:

➜  nginx curl website.com
your success%     //响应的内容

code + URL

#302 表示临时性重定向。访问一个Url时,被重定向到另一个url上。常#用于页面跳转。
location  /  {
   return 302 /bbs;
}


location  /bbs  {
   root html;
   index index.html;
}

URL
直接重定向到了百度了

location  /  {
   return http://baidu.com;
}

rewrite指令

在这里插入图片描述
地址重写与地址转发

地址重写
地址重写是实际上是为了实现址标准化,就像访问www.baidu.cn可以出现www.baidu.com的首页,服务器会把www.baidu.cn重写成www.baidu.com,浏览器的地址栏也会显示www.baidu.com。

地址转发
地址转发一般发生在同一站点项目内,而地址重写则没有限制。

总结:

  • 地址转发后客户端浏览器地址栏中的地址显示是不改变的;而地址重写后客户端浏览器地址栏中的地址改变为服务器选择确定的地址。
  • 在一次地址转发整个过程中,只产生一次网络请求;而一次地址重写一般会产生两次请求。地址转发一般发生在同一站点项目内;而地址重写没有该限制。
  • 地址转发的速度较地址重定向快。
  • 地址转发过程中,可以将客户端请求的request范围内的属性传递给新的页面,但地址重写不可以。

rewrite常用全局变量

变量说明
$args请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2
$body_bytes_sent服务器发送给客户端的响应body字节数
$content_lengthHTTP请求信息里的"Content-Length"
$conten_typeHTTP请求信息里的"Content-Type"
$document_rootnginx虚拟主机配置文件中的root参数对应的值
$document_uri当前请求中不包含指令的URI,如www.123.com/1.php?a=1&b=2的$document_uri就是1.php,不包含后面的参数
$http_referer记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置
$host主机头,也就是域名
$http_user_agent客户端的详细信息,也就是浏览器的标识,用curl -A可以指定
$http_cookie客户端的cookie信息
$http_x_forwarded_for当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
$limit_rate如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0
$remote_addr客户端的公网ip
$remote_port 客户端的port
$remote_user如果nginx有配置认证,该变量代表客户端认证的用户名
$request请求的URI和HTTP协议,如“GET /article-10000.html HTTP/1.1”
$request_body_file做反向代理时发给后端服务器的本地资源的名称
$request_method请求资源的方式,GET/PUT/DELETE等
$request_filename当前请求的资源文件的路径名称,相当于是 d o c u m e n t r o o t / document_root/ documentroot/document_uri的组合
$request_uri请求的链接,包括 d o c u m e n t u r i 和 document_uri和 documenturiargs
$scheme请求的协议,如ftp,http,https
$server_protocol客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等
$server_addr服务器IP地址
$server_name服务器的主机名
$server_port服务器的端口号
$statushttp状态码,记录请求返回的状态码,例如:200、301、404等
$uri和$document_uri相同
$http_referer客户端请求时的referer,通俗讲就是该请求是通过哪个链接跳过来的,用curl -e可以指定
$time_local记录访问时间与时区,如18/Jul/2014:17:00:01 +0800

rewrite指令
该指令通过正则表达式的使用来改变URI。可以同时存在一个或者多个指令,按照顺序依次对URL进行匹配和处理。

特别注意:

  • URI ( Universal Resource Identifier,通用资源标识符),用于对网络中的各种资源进行标识,由存放资源的主机名、片段标志符和相对URI三部分组成。存放资源的主机名一般由传输协议. Scheme )、 主机和资源路径三部分组成;片段标志符指向资源内容的具体元素;相对URI表示资源在主机上的相对路径。一般格式为:
Scheme:[//][[用户名[:密码]@]主机名[:端口名]][/资源路径]
  • URL (Uniform Resource Location,统一资源定位符),是用于在Internet中描述资源的字符串,是URI 的子集,主要包括传输协议(Scheme)、主机(IP、端口号或者域名)和资源具体地址(目录和文件名)等三部分。一般格式为:Scheme:/l主机名[:端口号][/资源路径]。
Scheme://主机名[:端口名]][/资源路径]

该指令可以在server快或者location块中配置,其语法结构为:

rewrite regex replacement [flag];
关键字  正则  替代内容   flag标记

注意:
regex,用于匹配URI的正则表达式。使用括号 “()” 标记要截取的内容。

rewrite参数的标签段位置:

server,location,if

常用正则表达式

字符描述
\将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用
^匹配输入字符串的起始位置
$匹配输入字符串的结束位置
*匹配前面的字符零次或者多次
+匹配前面字符串一次或者多次
?匹配前面字符串的零次或者一次
.匹配除“\n”之外的所有单个字符
(pattern)匹配括号内的pattern

rewrite 最后一项flag参数:

标记符号说明
last本条规则匹配完成后继续向下匹配新的location URI规则
break本条规则匹配完成后终止,不在匹配任何规则
redirect返回302临时重定向
permanent返回301永久重定向

示例1

无论/search 后面跟什么内容,最后都会被永久重定向到百度页面

location /search {
   rewrite  ^/(.*)  http://baidu.com permanent;
}

示例2
创建三个文件夹,每个文件夹下有个1.html文件;
在这里插入图片描述

location /images {
   rewrite /images/(.*) /pics/$1;      //•将URL  /images/1.html 重写为  /pics/1.html
}


location /pics {
   rewrite /pics/(.*)  /photos/$1;    //•将URL  /pics/1.html 重写为  /photos/1.html
}


location /photos {

}

示例3

将URL /images/1.html 重写为 /pics/1.html, 并且不再匹配其他location段

location /images {
   rewrite /images/(.*) /pics/$1  break; 
}

示例4

将URL /images/1.html 重写为 /pics/1.html, 重新进入server段后匹配了/pics location段,然后又被重写。

location /images {
   rewrite /images/(.*) /pics/$1  last;
}

rewrite实战域名跳转

在这里插入图片描述
Nginx的rewrite功能在企业里应用非常广泛:

  • 可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。
  • 网址换新域名后,让旧的访问跳转到新的域名上。
  • 根据特殊变量、目录、客户端的信息进行URL调整等。

域名跳转

旧域名www.test.com直接跳转到新域名www.baidu.com

server {
   listen   80;
   server_name  www.test.com;
   rewrite ^/(.*) http://www.baidu.com/$1 permanent;
   }
 server {
     listen    80;
     server_name  www.baidu.com;
     location / {
       root  html;
       index  index.html index.htm;
     }
     access_log logs/brian.log main gzip buffer=128k flush=5s; 
     error_page  500 502 503 504  /50x.html;
     location = /50x.html {
       root  html;
     }
 }

if指令

在这里插入图片描述
该指令用来支持条件判断,并根据条件判断结果选择不同的Nginx配置,可以在server块或locatio块中配置该指令。
语法结构:

if (condition)  { ... }

其中,花括号代表一个作用域,形成一个if配置块,是条件为真时的Nginx配置。condition为判断条件( true/false ),它可以支持以下几种设置方法:

  • 变量名-如果变量的值为空字符串或者“0”开头的任意字符串,if指令认为条件为false,其他情况为true,比如:
if ($slow) {
 .....   #Nginx配置 
}
  • 使用 “=”(等于) 和 “!=” (不等于) 比较变量和字符串是否相等,相等时if指令为条件为true,反之为false。
if ($request_method = POST) {
  return 405;
}

注意:
这里的字符串不需要加引号。

变量与正则表达式

  • ~ 表示匹配过程对大小写敏感
  • ~* 表示匹配过程对大小写不敏感
  • !~ 表示匹配失败是if指令认为条件为true否则为false
if ($http_user_agent  ~  MSIE) {
  # $http_user_agent 的值中是否包含MSIE字符串,如果包含,为   true
}

示例
判断ip地址是否为192.168.66.10如果是返回“test if ok in Url /serach”

location /search {
  if ($remote_addr = "192.168.66.10"){
   return 200 "test if ok in url search"
  }
}

不允许谷歌浏览器访问,如果时候谷歌浏览器放回500

if ($http_user_agent ~ Chrome){
 return 500;
}

set和break指令

在这里插入图片描述
set指令

该指令用于设置一个新的变量。

语法结构

set variable value
  • variable,为变量的名称。注意要用符号“$”作为变量的第一个字符,且变量不能与Nginx服务器预设的全局变量同名。
  • value,为变量的值,可以是字符串、其他变量或变量的组合等。

break指令

该指令用于中断当前相同作用域中的其他Nginx配置。
语法结构

break;

示例

location / {
  if ($slow){
   set $id $1 ; # 处于break指令之前,配置生效
   break;    
   limit_rate 10k; #处于break指令之后,配置无效
  }
}

Gzip压缩指令

在这里插入图片描述
Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能!

Gzip压缩作用

将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度。Gzip压缩可以配置http,server和location模块下。Nginx开启Gzip压缩参数说明:

指令含义
gzip on决定是否开启gzip模块,on表示开启,off表示关闭;
gzip_min_length 1k设置允许压缩的页面最小字节(从header头的Content-Length中获取) ,当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。建议大于1k
gzip_buffers 4 16k;设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间,param2:int(k) 后面单位是k。这里设置以16k为单位,按照原始数据大小以16k为单位的4倍申请内存
gzip_http_version 1.1; 识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码
gzip_comp_level 2;设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大;等级1-9,最小的压缩最快 但是消耗cpu
gzip_types text/plain application/x-javascripttext/css application/xml``;设置需要压缩的MIME类型,非设置值不进行压缩,即匹配压缩类型
gzip_vary on;启用应答头"Vary: Accept-Encoding"
gzip_proxied off;nginx做为反向代理时启用,off(关闭所有代理结果的数据的压缩),expired(启用压缩,如果header头中包括"Expires"头信息),no-cache(启用压缩,header头中包含"Cache-Control:no-cache"), no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含 "Last-Modified"),no_etag(启用压缩,如果header头中不包含"Etag"头信息),auth(启用压缩,如果header头中包含"Authorization"头信息)
gzip_disable msie6;(IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库

如下是线上常使用的Gzip压缩配置

http {
   gzip  on;
   gzip_min_length  1k;
   gzip_buffers   4 16k;
   gzip_http_version 1.1;
   gzip_comp_level 9;
   gzip_types    text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
   gzip_disable "MSIE [1-6]\.";
   gzip_vary on;
}

Nginx的Gzip压缩功能虽然好用,但是下面两类文件资源不太建议启用此压缩功能。

  1. 图片类型资源 (还有视频文件) 原因:图片如jpg、png文件本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。
  2. 大文件资源 原因:会消耗大量的cpu资源,且不一定有明显的效果。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
在这里插入图片描述

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

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

相关文章

代码随想录Leetcode474. 一和零

题目&#xff1a; 代码(首刷看解析 2024年2月26日&#xff09; class Solution { public:// 二维 0 1背包int findMaxForm(vector<string>& strs, int m, int n) {// 1 二维 [i]表示 0 的个数&#xff0c;上限m; [j]表示 1 的个数&#xff0c;上限nvector<vector…

C++面试宝典第32题:零钱兑换

题目 给定不同面额的硬币coins和一个总金额amount,编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,则返回-1。说明:你可以认为每种硬币的数量是无限的。 示例1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = …

Redis高可用三主三从集群部署(三种方式部署/18个节点的大集群)

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容使用宝塔面板搭建集群规划配置验证 使用docker搭建使用脚本搭建规划防火墙端口配置脚本redis.conf配置文件执行过程 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff…

HTTP 与HTTPS笔记

HTTP 80 HTTP是一个在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的约定和规范。 HTTP状态码 1xx 提示信息&#xff0c;表示目前是协议处理的中间状态&#xff0c;还需要后续的操作&#xff1b;2xx 200 204 026 成功3xx 重定向&#xff…

动静态库的理解

其实我们平常写一些C或C的代码的时候&#xff0c;在链接过程都会用到动静态库&#xff0c;因为一些基础的代码我们是不用写的&#xff08;比如输入输出函数&#xff09;&#xff0c;我们只需要包个头文件&#xff0c;这些库和我们的编译好的代码一起链接后才会形成可执行程序 那…

当Vue项目启动后,通过IP地址方式在相同网络段的其他电脑上无法访问前端页面?

当Vue项目启动后&#xff0c;通过IP地址方式在相同网络段的其他电脑上无法访问前端页面&#xff0c;可能是由以下几个原因造成的&#xff1a; 服务监听地址&#xff1a;默认情况下&#xff0c;许多开发服务器&#xff08;如Vue CLI的vue-cli-service serve&#xff09;只监听lo…

opencv图像腐蚀

腐蚀&#xff08;Erosion&#xff09;是一种形态学图像处理操作&#xff0c;用于移除图像中的小白点、细小物体或者边缘。它通过将结构元素应用于图像上的像素来实现。 以下是opencv实现图像腐蚀的代码 #include <opencv2/highgui/highgui.hpp> #include <opencv2/im…

有适合短视频剪辑软件的吗?分享4款热门软件!

在数字时代&#xff0c;短视频已成为人们获取信息、娱乐消遣的重要形式。随着短视频行业的蓬勃发展&#xff0c;市场上涌现出众多短视频剪辑软件&#xff0c;它们功能各异&#xff0c;各具特色。本文将为您详细介绍几款热门短视频剪辑软件&#xff0c;助您轻松掌握短视频剪辑技…

IP对讲终端SV-6002(防水)

SV-6002&#xff08;防水&#xff09;是一款IP对讲终端&#xff0c;具有10/100M以太网接口&#xff0c;其接收网络的音频数据&#xff0c;解码后播放&#xff0c;外部DC12~24V电源供电端子&#xff0c;提供单路2W的音频输出。基于TCP/IP网络通信协议和数字音频技术&#xff0c;…

Airtest-Selenium实操小课③:下载可爱猫猫图片

1. 前言 那么这周我们看看如何实现使用Airtest-Selenium实现自动搜索下载可爱的猫猫图片吧~ 2. 需求分析和准备 整体的需求大致可以分为以下步骤&#xff1a; 打开chrome浏览器 打开百度网页 搜索“可爱猫猫图片” 定位图片元素 创建存储图片的文件夹 下载可爱猫猫图片…

2024最新互联网大厂面试题,(java,python,vue)

最近又赶上跳槽的高峰期&#xff0c;好多粉丝&#xff0c;都问我要有没有最新面试题&#xff0c;索性&#xff0c;我就把我看过的和我面试中的真题&#xff0c;及答案都整理好&#xff0c;整理了《第3版&#xff1a;互联网大厂面试题》并分类150份 PDF&#xff0c;累计 7701页&…

消息中间件篇之Kafka-高可用机制

一、 集群模式 1. Kafka的服务器端由被称为Broker的服务进程构成&#xff0c;即一个Kafka集群由多个Broker组成。 2. 这样如果集群中某一台机器宕机&#xff0c;其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一。 二、分区备份机制 1. 一个…

centos升级g++.v6.1.0版本

1.下载源码包 wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz tar -zxvf gcc-6.1.0.tar.gz cd gcc-6.1.0 2.打开 download_prerequisites 脚本 vim contrib/download_prerequisites 可以看到该文件就是执行一些下载指令&#xff0c;需要下载几个包&#xff0c…

H5 个人引导页隐藏特效源码

H5 个人引导页隐藏特效源码 源码介绍&#xff1a;源码无后台、无数据库&#xff0c;H5自适应、无加密&#xff0c;直接修改可用。 源码可跳转五个选项、带隐藏特效开关&#xff0c;可随时开关特效、带微信|支付宝|QQ二维码、带行星飘落特效、带背景音乐 下载地址&#xff1a;…

实战 vue3 使用百度编辑器ueditor

前言 在开发项目由于需求vue自带对编辑器不能满足使用&#xff0c;所以改为百度编辑器&#xff0c;但是在网上搜索发现都讲得非常乱&#xff0c;所以写一篇使用流程的文章 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、下载ueditor编辑器 一个“…

离线数仓(四)【数仓数据同步策略】

前言 今天来把数仓数据同步解决掉&#xff0c;前面我们已经把日志数据到 Kafka 的通道打通了。 1、实时数仓数据同步 关于实时数仓&#xff0c;我们的 Flink 直接去 Kafka 读取即可&#xff0c;我们在学习 Flink 的时候也知道 Flink 提供了 Kafka Source&#xff0c;所以这里不…

如何改变.net托管的入口main函数

有小伙伴问: .NET托管入口Main函数可以修改成别的函数&#xff0c;用来作为程序的入口吗&#xff1f; 答案&#xff1a;当然是可以的。这也算是.NET里面非常简单的骚操了。本篇来用最新的.NET8演示下&#xff0c;如何修改Main入口。 1.简单控制台例子&#xff1a; namespace…

Git Windows安装教程

Git简介 Git是目前世界上最先进的分布式版本控制系统。它的工作原理 / 流程如下&#xff1a; [ Workspace:工作区 Index / Stage:暂存区 Repository:仓库区&#xff08;或本地仓库&#xff09; Remote:远程仓库 ] Git的下载 去 Git 官网下载对应系统的软件了&#xff0c;下…

七、防御保护---VPN篇

七、防御保护---VPN篇 一、VPN介绍二、VPN的分类2.1 根据建设的单位不同分类2.2 根据组网方式不同分类2.3 根据应用场景不同分类2.4 按照VPN技术实现的网络层次进行分类&#xff1a; 三、VPN的核心技术3.1 隧道技术3.2 身份认证技术3.3 加密技术3.4 数据验证技术 一、VPN介绍 …

pop链构造 [NISACTF 2022]babyserialize

打开题目 题目源代码如下 <?php include "waf.php"; class NISA{public $fun"show_me_flag";public $txw4ever;public function __wakeup(){if($this->fun"show_me_flag"){hint();}}function __call($from,$val){$this->fun$val[0];…