Nignx的搭建与核心配置

目录

一、Nginx是什么?

1、Nginx概述

2、Nginx模块与作用

3、Nginx三大作用:反向代理,负载均衡,动静分离

nginx七层负载均衡调度算法(六种)

1、轮询(默认调度算法)

2、加权轮询

3、ip_hash(IP哈希)

4、最少连接数 least_conn

5、响应时间 fair(需编译安装第三方模块 ngx_http_upstream_fair_module)

6、url_hash(URL分配 )(需编译安装第三方模块 ngx_http_upstream_hash_module)

upstream backendserver {server 192.168.0.14:80 max_fails=2 fail_timeout=10s;server 192.168.0.15:80 max_fails=2 fail_timeout=10s;hash $request_uri;}④动静分离:

二、Nginx和Apache的差异

1、Apache:同步多进程模型:一个连接对应一个进程(高稳定)

2、Nginx:异步非阻塞模型:多个连接(万级别)对应一个进程(高进程)

三、安装nginx

1、编译安装

2、yum安装

四、nginx的信号使用

五、nginx的核心配置指令

1、访问状态统计配置

第一步:查看已安装的nginx是否包含http_stub_status模块

第二步:修改nginx.conf配置文件,指定访问位置并添加stub_tatus配置(修改之前进行备份)

第三步:重启服务后进行访问测试

2、基于授权的访问控制

第一步:生成用户密码认证文件

第二步:修改主配置文件相应的目录,添加认真配置

Thank you for using nginx.3、基于客户端访问控制

第一步:在主配置文件中添加控制规则

第二步重启服务

4、基于域名的nginx虚拟主机

第一步:为虚拟主机提供域名和ip的映射

第二步:为虚拟主机准备网页文档

第三步:还原nginx主配置文件

第四步:修改主配置文件

第五步:重启nginx后可进行访问测试

5、基于ip的nginx虚拟主机

第一步:添加虚拟网卡,修改主配置文件

第二步:检查配置文件,重启服务

第三步:客户端上访问测试

6、基于端口的nginx虚拟主机

第一步:修改主配置文件

第二步:检查配置文件,重启服务

第三步:客户端上访问测试


一、Nginx是什么?

1、Nginx概述

①一款高性能,轻量级的web服务软件

②系统资源消耗低

③对http并发连接的处理能力高

④单台物理服务器可支持30000-50000个并发请求。

Nginx(发音同"engine x")是一个高性能的反向代理和 Web服务器软件,最初是由俄罗斯人 Igor Sysoev开发的。Nginx 的第一个版本发布于2004年,其源代码基于双条款 BSD许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。Nginx 是互联网上最受欢迎的开源 Web 服务器之一,它不仅提供了用于开发和交付的一整套应用技术,还是应用交付领域的开源领导者。

2019年 3月,著名硬件负载均衡厂商F5宣布收购 Nginx,Nginx成为F5的一部分。 F5表示,将加强对开源和 Nginx 应用平台的投资,致力于Nginx 开源技术、开发人员和社区的发展,更大的投资将为开放源码计划注人新的活力,会主办更多的开放源码活动,并产生更多的开放源码内容。

2、Nginx模块与作用

①main模块:全局配置模块,所有模块都要执行遵守配置运行nginx服务器的用户,worker_process数(进程)、nginx进程pid存放路径、错误日志存放路径、配置文件的引入等

②stream服务模块:实现反向代理功能,包括tcp协议代理

③邮件服务模块:主要用于支持nginx的邮件服务。对pop3协议,imap协议和smtp协议的支持

第三方模块:二次开发,为了扩展Nginx服务器应用,完成开发者自定义功能json支持等

④events模块:影响nginx服务器与用户的网络连接

events {                                              #events模块设置

woker_connections 65536;                #设置单个工作进程最大并发连接数

use epoll;                                           #事件驱动类型选择为epoll

accept_mutex on;                              #同一时刻一个请求轮流由work进程除了,即轮询

multi_accept on;                                #每个工作进程同时接受多个网络连接

}

⑤http模块:跟web服务相关,主要用于扩展标注http功能,让Nginx能处理一些特殊的服务,包含几个子模块

自定义服务日志,允许sendfile方式传输文件,连接超时时间,单连接请求数上限,flash多媒体传输,解析geoip请求,网络传输压缩,安全协议ssl支持等

location模块:url网址定位

server模块:服务模块

配置80端口监听、虚拟主机、DNS域名解析等

auth_basic模块:对网页设置用户名密码

gzip模块:压缩

proxy模块:设置后端IP地址、端口号及http和加密的https

ssl模块:https加密

3、Nginx三大作用:反向代理,负载均衡,动静分离

①反向代理:在服务端配置,客户端访问服务器A,服务器A为代理服务器,将客户服务再转发到服务器B

作用:缓存,将服务器的响应缓存,存在自己的内存中,减少服务器压力

负载均衡,将用户请求分配给多个服务器

访问控制

②正向代理:在客户端配置,配置完了再去访问具体服务,即代理服务器代理了客户端,再去和目标服务器 进行交互

作用:提高访问速度

隐藏客户端真实ip地址

③负载均衡:

分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

nginx七层负载均衡调度算法(六种)

1、轮询(默认调度算法)

特点:每个请求按时间顺序逐一分配到不同的后端服务器处理。
适用业务场景:后端服务器硬件性能配置完全一致,业务无特殊要求时使用。

upstream backendserver {
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

2、加权轮询

特点:指定轮询几率,weight值(权重)和访问比例成正比,用户请求按权重比例分配。
适用业务场景:用于后端服务器硬件性处理能力不平均的情形。

upstream backendserver {
server 192.168.0.14:80 weight=5 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 weight=10 max_fails=2 fail_timeout=10s;
}

3、ip_hash(IP哈希)

特点:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session会话保持问题。
适用业务场景:适用于需要账号登录的系统,会话连接保持的业务。

upstream backendserver {
ip_hash;
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

4、最少连接数 least_conn

特点:按nginx反向代理与后端服务器之间的连接数,连接数最少的优先分配。

适用业务场景:适用于客户端与后端服务器需要保持长连接的业务。

upstream backendserver {
least_conn; server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

 

5、响应时间 fair(需编译安装第三方模块 ngx_http_upstream_fair_module)

特点:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
适用业务场景:对访问响应速度有一定要求的业务。

upstream backendserver {
fair;
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
}

 

6、url_hash(URL分配 )(需编译安装第三方模块 ngx_http_upstream_hash_module)

特点:按访问url的hash结果来分配请求,使同一个url访问到同一个后端服务器。

适用业务场景:适用于后端服务器为缓存服务器时比较有效。

upstream backendserver {
server 192.168.0.14:80 max_fails=2 fail_timeout=10s;
server 192.168.0.15:80 max_fails=2 fail_timeout=10s;
hash $request_uri;
}

④动静分离:

采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。

在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式,通过使用Nginx提高网站的响应速度,优化用户体验

二、Nginx和Apache的差异

1、Apache:同步多进程模型:一个连接对应一个进程(高稳定)

①rewrite更强大(rewrite主要功能是是实现统一资源定位符url的跳转)

②模块多,基本想到的都可以找到

③少bug,更加稳定(nginx相对较多)

④php支持比较简单(nginx需要配合其他后端使用)

⑤处理动态请求更有优势(nginx更适合静态与反向)

2、Nginx:异步非阻塞模型:多个连接(万级别)对应一个进程(高进程)

①轻量级,采用C编写,占用更少的内存与资源

②.抗并发/高并发,以epoll and kqueue 作为开发模型,负载能力高,高并发下能够保持                     低资源低消耗高性能(apache在PHP处理慢或前端压力很大时,容易出现进程数飙升                     从而拒绝服务)

③.处理静态文件好,静态处理性能比apache高三倍以上

④.设计高度模块化,编写模块相对简单

⑤.配置简洁,正则配置更简单,且更改完可以使用 -t 测试(apache配置复杂,重启时发                     现出错,会很崩溃)

⑥.作为负载均衡服务器,支持七层负载均衡,可以有效防止ddos攻击

⑦.本身是一个反向代理服务器,也可以作为邮件代理服务器使用

⑧.支持热部署,支持在线升级

三、安装nginx

1、编译安装

关闭防火墙,将安装nginx所需要的软件包传到/opt目录下

nginx安装官网:nginx: download

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
 
# 将压缩包传入到/opt目录下
cd /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz

安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
mkdir /apps/nginx -p
 
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
 
 
make -j2 && make install
 
chown -R nginx.nginx /apps/nginx

创建软链接后直接nginx启动

ln -s /apps/nginx/sbin/nginx /usr/sbin/

创建nginx自启动文件

vim /usr/lib/systemd/system/nginx.service
 
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

重新加载配置,设置开机自启并开启服务

systemctl daemon-reload          #重新加载配置
systemctl enable --now nginx     #开机自启并立即启动
systemctl status nginx.service   #查看服务状态(验证

2、yum安装

Centos7 需要安装epel源
 
cd /etc/yum.repos.d
vim epel.repo
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
gpgcheck=0
 
yum install -y epel-release
 
yum install nginx -y

四、nginx的信号使用

nginx命令支持向其发送信号,实现不同功能

nginx -h      
#查询nginx信号使用规则

常用信号

信号解释
nginx -v显示版本
nginx -V

显示编译详细情况、模块等信息

nginx -t

检查语法格式

nginx -T打印当前配置
nginx -s发送信号
nginx -s stop立即关闭
nginx -s quit优雅退出,不影响业务的状态下退出
nginx -s reload重新加载配置文件
nginx -s  USR1分割日志
nginx -s  USR2优雅升级
nginx -g 'user zhangsan;' 以张三身份运行,默认是以nginx身份
nginx -g 'daemon off;'前台运行命令

五、nginx的核心配置指令

1、访问状态统计配置

第一步:查看已安装的nginx是否包含http_stub_status模块

cd /usr/local/nginx/sbin
#根据安装路径自由修改/apps/nginx/sbin也可
nginx -V

第二步:修改nginx.conf配置文件,指定访问位置并添加stub_tatus配置(修改之前进行备份)

cd /usr/local/nginx/conf/              #/apps/nginx/conf同理
cp nginx.conf nginx.conf.bak           #备份
vim nginx.conf
 
    server {
        listen       80;
        server_name  www.clj.com;
 
        charset utf-8;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
        ##添加 stub_status 配置
        location /status {				##访问位置为/status
            stub_status on;				##打开状态统计功能
            access_log off;				##关闭此位置的日志记录
        }
 

第三步:重启服务后进行访问测试

systemctl restart nginx.service

浏览器访问 http;//192.168.79.210/status

Active connections ∶ 表示当前的活动连接数;
server accepts handled requests∶表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数已处理的请求数。
可curl http∶//192.168.79.210/status 结合 awk与if 语句进行性能监控。

2、基于授权的访问控制

第一步:生成用户密码认证文件
yum install -y httpd-tools
#安装工具
 
htpasswd -c /usr/local/nginx/passwd.db zhangsan
#生成用户密码认证文件(注意路径
 
chown nginx /usr/local/nginx/passwd.db 
chmod 400 /usr/local/nginx/passwd.db
#修改属性和赋予执行权限

第二步:修改主配置文件相应的目录,添加认真配置
vim /usr/local/nginx/conf/nginx.conf
#路径/apps/nginx/conf/nginx.conf
 
 location / {
            root   html;
            index  index.html index.htm;
            #添加认证配置
            auth_basic "secret";					#设置密码提示框文字信息
            auth_basic_user_file /usr/local/nginx/passwd.db;
        }


Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.
3、基于客户端访问控制

访问控制规则如下:
deny IP/IP段:拒绝某个IP或IP段的客户端访问。
allow IP/IP段:允许某个IP或IP段的客户端访问。
规则从上往下执行,如果匹配到则停止,不会再往下继续匹配。

第一步:在主配置文件中添加控制规则
vim /usr/local/nginx/conf/nginx.conf
#注意路径/apps/nginx/conf/nginx.conf
 
        location / {
            root   html;
            index  index.html index.htm;
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            
            # 添加控制规则
            deny 192.168.80.77;					#拒绝访问的客户端IP
            allow all;							#允许其他所有客户端访问
        }

第二步重启服务
systemctl restart nginx.service 

第三步:被拒绝的客户端访问测试

4、基于域名的nginx虚拟主机

第一步:为虚拟主机提供域名和ip的映射
echo "192.168.79.210 www.zhuo.com www.xunizhuo.com" >> /etc/hosts

第二步:为虚拟主机准备网页文档
mkdir -p /var/www/html/zhuo/
mkdir -p /var/www/html/xunizhuo/
echo "<h1>www.zhuo.com</h1>" > /var/www/html/zhuo/index.html
echo "<h1>www.xunizhuo.com</h1>" > /var/www/html/xunizhuo/index.html

第三步:还原nginx主配置文件

之前还做过访问控制,多以直接将访问控制进行还原

cd /usr/local/nginx/conf           #/apps/nginx/conf路径同理 
cp nginx.conf.bak nginx.conf       #还原主配置文件

第四步:修改主配置文件
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理
 
    server {
        listen       80;
        server_name  www.xunizhuo.com;						#设置域名			
        charset utf-8;									#设置网页字符集
        access_log  logs/xunizhuo.com.access.log;			#设置日志名
        location / {
            root   /var/www/html/xunizhuo;					#设置www.bxb.com的工作目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;			
        server_name  www.zhuo.com;						#设置域名
        charset utf-8;									#设置网页字符集
        access_log  logs/zhuo.com.access.log;			#设置日志名
        location / {
            root   /var/www/html/zhuo;					#设置www.bxb.com的工作目录
            index  index.html index.htm;
        }

第五步:重启nginx后可进行访问测试

5、基于ip的nginx虚拟主机

第一步:添加虚拟网卡,修改主配置文件
ifconfig ens33:0 192.168.79.211/24
 
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理
 
    server {
        listen       192.168.79.210:80;				#修改监听的为ip
        server_name  www.xunizhuo.com;
        charset utf-8;
        access_log  logs/xunizhuo.com.access.log;
        location / {
            root   /var/www/html/xunizhuo;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       192.168.79.211:80;				#修改监听的为ip
        server_name  www.zhuo.com;
        charset utf-8;
        access_log  logs/zhuo.com.access.log;
        location / {
            root   /var/www/html/zhuo;
            index  index.html index.htm;
        }

第二步:检查配置文件,重启服务
nginx -t
systemctl restart nginx.service
第三步:客户端上访问测试
curl 192.168.170.111:80
curl 192.168.170.113:80

6、基于端口的nginx虚拟主机

第一步:修改主配置文件
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf同理
 
    server {
        listen       192.168.79.210:666;				#修改监听的为ip的666端口
        server_name  www.xunizhuo.com;
        charset utf-8;
        access_log  logs/xunizhuo.com.access.log;
        location / {
            root   /var/www/html/xunizhuo;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       192.168.79.211:888;			    #修改监听的为ip的888端口
        server_name  www.zhuo.com;
        charset utf-8;
        access_log  logs/zhuo.com.access.log;
        location / {
            root   /var/www/html/zhuo;
            index  index.html index.htm;
        }

第二步:检查配置文件,重启服务
nginx -t
systemctl restart nginx.service
第三步:客户端上访问测试
curl 192.168.170.111:666
curl 192.168.170.113:888

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

雨量水位在线监测站

TH-SW2随着科技的不断进步&#xff0c;雨量水位在线监测站在防汛、水资源管理、环境保护等领域发挥着越来越重要的作用。传统的雨量水位监测方法往往存在精度不高、实时性不强等问题&#xff0c;而雷达式测量技术的出现&#xff0c;则为这一领域带来了革命性的变化。 一、雨量水…

【踩坑专栏】主机ping虚拟机失败

我出现的问题finalshell连接超时&#xff0c;ping了一下发现ping都ping不通&#xff0c;于是发现问题所在。 最开始我是把虚拟机的网络设置改为桥接模式&#xff0c;问题解决了&#xff0c;但是这种模式的问题就是每次开机&#xff0c;ip都会改变&#xff0c;因此非常麻烦&…

零到大师:嵌入式Linux学习书单分享

大家好&#xff0c;我是知微&#xff01; 上一篇推荐的书单嵌入式软件必读10本书_单片机篇&#xff0c;收到反响很好。再推荐一篇嵌入式Linux相关的书单。 《鸟哥的Linux私房菜》 鸟哥的Linux系列适合零基础小伙伴&#xff0c;从电脑基础到文件系统、shell脚本等等&#xff…

【PX4学习笔记】04.QGC地面站的使用

目录 文章目录 目录PX4代码烧入PX4固件代码的烧入方式1PX4固件代码的烧入方式2 QGC地面站的基础使用连接地面站的方式查看关键的硬件信息 QGC地面站的Application Settings模块Application Settings模块-常规界面单位其他设置数据持久化飞机中的数传日志飞行视图计划视图自动连…

Unity Shader ASE基础效果思路与代码(一):遮罩、硬边溶解、光边溶解、UV扰动

Unity Shader ASE基础效果思路与代码(一)&#xff1a;遮罩、硬边溶解、光边溶解、UV扰动 文章目录 Unity Shader ASE基础效果思路与代码(一)&#xff1a;遮罩、硬边溶解、光边溶解、UV扰动遮罩效果硬边溶解光边溶解UV扰动 遮罩效果 效果展示&#xff1a; 思路与代码&#xff1…

SQL注入:堆叠注入-强网杯[随便注]

目录 什么是堆叠注入&#xff1f; 强网杯-随便注 rename && alter绕过 prepare绕过 Handle绕过 靶机&#xff1a;BUUCTF在线评测 什么是堆叠注入&#xff1f; 在一些场景中&#xff0c;应用程序支持一次执行多条SQL语句&#xff0c;我们称为堆叠查询&#xff0c;…

HTML5-CSS3

一、HTML5的新特性 HTML5 的新增特性主要是针对于以前的不足&#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题&#xff0c;基本是 **IE9 以上版本的浏览器**才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量使用这些新特性…

前端是做什么的?

前端很多时候代表从事前端开发的工程师&#xff0c;定义上来说&#xff0c;他们负责规划、设计、构建和运行网站、软件程序和基于 Web 的应用程序的用户界面系统。通俗点来说&#xff0c;我们看到的网站、点击网站所有的按钮以及和网站的交互都是前端所进行的工作。 概述 前端…

pclpy 窗口可视化多个点云

pclpy 窗口可视化多个点云 一、算法原理二、代码三、结果1.可视化结果 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多可视化两个点云。。 二、代码 from pclpy import pcldef CloudShow(cloud1, cloud2):&q…

java数据结构与算法刷题-----LeetCode222. 完全二叉树的节点个数

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 1. 法一&#xff1a;利用完全二叉树性质&#xff0c;进行递归二分查找 解…

145. Binary Tree Postorder Traversal(二叉树的后序遍历)

问题描述 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 问题分析 此问题与二叉树的前序遍历分析类似&#xff0c;只是在数组合并的时候顺序发生一下变化就行了。 代码 int* postorderTraversal(struct TreeNode* root, int* returnSize) {if(root…

【电子书】计算机课程

资料 wx&#xff1a;1945423050 个人整理了一些互联网电子书 计算机课程 Netty权威指南&#xff08;第2版&#xff09;.epubSharePoint Server 2016 IT Pro 部署指南.epubTensorFlow自然语言处理.epubWebGIS之OpenLayers全面解析.epub从Paxos到Zookeeper分布式一致性原理与实践…

《图解设计模式》笔记(一)适应设计模式

图灵社区 - 图解设计模式 - 随书下载 评论区 雨帆 2017-01-11 16:14:04 对于设计模式&#xff0c;我个人认为&#xff0c;其实代码和设计原则才是最好的老师。理解了 SOLID&#xff0c;如何 SOLID&#xff0c;自然而然地就用起来设计模式了。Github 上有一个 tdd-training&…

Javascript中var和let之间的区别

文章目录 一.变量提升(声)二.let和var的区别 区别&#xff1a; 1、var有变量提升&#xff0c;而let没有&#xff1b; 2、let不允许在相同的作用域下重复声明&#xff0c;而var允许&#xff1b; 3、let没有暂时性死区问题&#xff1b; 4、let创建的全局变量没有给window设置对应…

【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子

作者推荐 视频算法专题 涉及知识点 广度优先搜索 网格 割点 并集查找 LeetCode:1263. 推箱子 「推箱子」是一款风靡全球的益智小游戏&#xff0c;玩家需要将箱子推到仓库中的目标位置。 游戏地图用大小为 m x n 的网格 grid 表示&#xff0c;其中每个元素可以是墙、地板或…

ctfshow web入门 web141-145

1.web141 ^\w$表示在开头和末尾匹配字母数字_&#xff0c;传入的v3值不能有字母数字_&#xff0c;即无字母的命令执行 php中1-phpinfo()是可以执行的&#xff0c;加减乘除都可以实现 这里或&#xff0c;异或&#xff0c;取反等运算都可以 这里采用羽师傅的异或脚本生成paylo…

小白水平理解面试经典题目LeetCode 404 Sum of Left Leaves【Tree】

404 左叶之和 小白翻译 给定二叉树的root&#xff0c;返回所有左叶的总和。 叶子是没有子节点的节点。左叶是另一个节点的左子节点的叶。 例子 小白教室做题 在大学某个自习的下午&#xff0c;小白坐在教室看到这道题。想想自己曾经和白月光做题&#xff0c;现在大过年的&a…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…

Github 2024-02-22 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-22统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4非开发语言项目2Go项目2HTML项目1Dart项目1Vue项目1JavaScript项目1TypeScript项目1 《Hello 算法…

Docker镜像加速

前言 众所周知&#xff0c;我们常用的一些工具或系统的下载源都是国外的&#xff0c;这就会导致我们在下载一些东西时&#xff0c;会导致下载巨慢或者下载失败的情况&#xff0c;下面便是docker换下载源的教程 镜像加速 下面是几个常用的国内的镜像 科大镜像&#xff1a;ht…