当前位置: 首页 > news >正文

Nginx01-HTTP简介与Nginx简介(安装、命令介绍、目录介绍、配置文件介绍)

目录

  • HTTP简介
    • HTTP原理
    • 查看访问网站的详细流程
      • curl -v
      • wget --debug
    • 查看网站访问量
    • HTTP协议版本
    • HTTP协议交互
      • HTTP 请求
        • 请求报文起始行
        • 请求头
      • HTTP响应
        • 响应报文起始行
        • 响应头
  • Nginx
    • 常见的Web服务
      • 常见网站服务
    • 安装Nginx
    • Nginx目录结构
    • Nginx启动管理
      • Nginx常用命令
    • Nginx配置文件
      • 主配置文件
      • 子配置文件

HTTP简介

HTTP原理

  • WebServer为Client提供网页浏览等服务,又称HTTPServer或WWWServer。
  • HTTP采用B/S模型,Client和Server通过HTTP或HTTPS进行数据的传输。
  • HTTP采用TCP链接,HTTP默认监听80端口,HTTPS默认监听443端口。
  • HTTP的工作原理:
    1. 链接:Browser和WebServer建立链接,通过打开socket表明链接建立成功。
    2. 请求:Browser通过socket向WebServer提交请求,一般为HTTP的GET或POST。
    3. 应答:Server通过特定端口接收监听到的Web页面请求,若请求存在再通过HTTP发送Browser需要的信息;若请求不存在则返回错误提示。
    4. 关闭连接:每完成一次应答,就会断开一次链接。

查看访问网站的详细流程

curl -v

[root@front ~]# curl -v www.baidu.com
* Rebuilt URL to: www.baidu.com/
*   Trying 153.3.238.110...
* TCP_NODELAY set
* Connected to www.baidu.com (153.3.238.110) port 80 (#0)
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: keep-alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Sun, 02 Jun 2024 12:25:56 GMT
< Etag: "588604eb-94d"
< Last-Modified: Mon, 23 Jan 2017 13:28:11 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
* Connection #0 to host www.baidu.com left intact

wget --debug

[root@front ~]# wget --debug www.baidu.com
DEBUG output created by Wget 1.19.5 on linux-gnu.Reading HSTS entries from /root/.wget-hsts
URI encoding = ‘UTF-8’
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2024-06-02 20:28:06--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 153.3.238.110, 153.3.238.102, 2408:873d:22:18ac:0:ff:b021:1393, ...
Caching www.baidu.com => 153.3.238.110 153.3.238.102 2408:873d:22:18ac:0:ff:b021:1393 2408:873d:22:1a01:0:ff:b087:eecc
Connecting to www.baidu.com (www.baidu.com)|153.3.238.110|:80... connected.
Created socket 3.
Releasing 0x0000557a357bf620 (new refcount 1).---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:28:06 GMT---response end---
200 OK
Registered socket 3 for persistent reuse.
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’index.html                 100%[=======================================>]   2.33K  --.-KB/s    in 0s2024-06-02 20:28:06 (123 MB/s) - ‘index.html’ saved [2381/2381]

查看网站访问量

alexa.chinaz.com

指标说明
IP访问网站的独立IP数量,公网IP。
PV页面访问量Page view。
UV独立访客数量,接近于用户数量 Unique Visitor。
DAU每天的活跃用户的数量:日活(日活跃用户)。
MAU月活(月活跃用户)。

HTTP协议版本

http1.0http1.1http2.0http3.0
特点短连接,每次请求都需要重复建立断开连接加入长连接功能增加并发,访问更快基于udp更快,应用于流媒体
占用服务端资源keepalive(响应后不会立刻断开)
是否加密http不加密,https加密默认基于https
基于tcp/udptcptcptcpudp

HTTP协议交互

  1. 浏览器发送request请求
  2. 服务器回复response响应

HTTP 请求

---request begin---
GET / HTTP/1.1  
User-Agent: Wget/1.19.5 (linux-gnu) 
Accept: */*
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive---request end---
请求报文起始行

GET / HTTP/1.1

  • 请求方法:用于指定客户端如何访问服务端(下载,上传,查看服务端信息)
常见的请求方法说明
GET下载(大部分请求),用于请求服务器发送指定资源。
POST上传(上传文件内容、登录),用于向服务器提交数据,通常导致服务器上的状态变化或副作用。
HEAD类似于GET,仅仅输出响应的头部信息(查看服务端的信息,一般用于检查)。
  • 资源的位置(URI): 这个资源在网站站点目录的哪个地方,叫什么名字.
    这里面写的/,斜线并非是Linux系统的根目录.这个/叫网站的站点目录

  • http协议版本

请求头

User-Agent: Wget/1.19.5 (linux-gnu)
Accept: /
Accept-Encoding: identity
Host: www.baidu.com
Connection: Keep-Alive

HTTP请求头解释
User-Agent: Wget/1.19.5 (linux-gnu)请求头,告诉服务器发起请求的应用类型和版本,这里是Wget命令行下载工具。
Accept: /请求头,告诉服务器客户端接受任何类型的 MIME 响应。
Accept-Encoding: identity请求头,告诉服务器客户端不接受任何编码转换,即希望服务器发送原始数据。
Host: www.baidu.com请求头,指定请求的服务器域名,这里是百度网站的域名。
Connection: Keep-Alive请求头,告诉服务器客户端希望保持连接活跃,以便为后续请求重用相同的TCP连接。

HTTP响应

---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:49:11 GMT---response end---
响应报文起始行

HTTP/1.1 200 OK

  • HTTP版本

  • 状态码 状态码描述
    状态码是反应服务器是否正确的处理用户请求
    |状态码 |含义|
    |-|-|
    |2xx |表示正常|
    |3xx |表示需要进行跳转,表示正常|
    |4xx |表示异常,客户端问题|
    |5xx |表示异常,服务端问题|

状态码状态码描述解释
200OK访问正常,服务器成功处理了请求。
301Moved Permanently永久跳转,请求的资源已被永久移动到新位置。
302Found或Moved Temporarily临时跳转,请求的资源临时移动到新位置。
304Not Modified浏览器缓存,请求的资源未修改,可以使用缓存的内容。
403Forbidden权限拒绝(拒绝访问)。权限问题,如未授权访问;首页文件问题,如配置错误导致无法访问首页。
404Not Found文件找不到,一般辅助错误日志排查,用于定位请求的资源不存在的问题。
500Internal Error内部错误,如服务器配置错误、应用程序错误等。SElinux开启时,可能会导致一些异常。一般需要辅助错误日志来排查。
502Bad Gateway网关错误,一般发生在负载均衡器中,请求发送到后端服务器,但后端服务器没有响应,导致网关返回错误。
503Service Unavailable服务临时不可用,后端负载异常等情况,或者人为设置(如系统升级)导致服务暂时不可用。
504Gateway Time-out网关超时,请求发送到网关,但网关在规定时间内没有响应。
响应头

Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sun, 02 Jun 2024 12:49:11 GMT

HTTP响应组成部分解释
Content-Length: 2381响应头,指示实体主体的大小(以字节为单位),这里是2381字节。
Content-Type: text/html响应头,指示响应的内容类型,这里是HTML文本。
Server: bfe响应头,指示处理请求的服务器软件,这里是百度的前端服务器(Baidu Front End)。
Date: Sun, 02 Jun 2024 12:49:11 GMT响应头,指示消息发送的时间,这里是2024年6月2日星期日,格林尼治标准时间12:49:11。

Nginx

常见的Web服务

类型说明
WEB服务网站服务,部署并启动了这个服务,你就可以搭建一个网站。
WEB中间件等同于WEB服务,用于提供网站的托管和访问服务。
中间件范围更加广泛,指的负载均衡之后的服务,包括各种应用程序层和网络层的中间件。
数据库中间件数据库缓存、消息队列等功能的中间件,用于提高数据库性能和处理数据。

常见网站服务

网站服务说明官网
Nginx大部分使用nginx, Engine Xhttp://nginx.org/en/docs/
Tengine基于Nginx二开, 淘宝开源, 更多内置模块http://tengine.taobao.org/
Openresty基于Nginx二开, 加强Lua功能与模块http://openresty.org/
Tomcat运行Java环境的Web服务https://tomcat.apache.org/
Jboss运行Java环境的Web服务https://www.jboss.org/
Jetty运行Java环境的Web服务https://www.eclipse.org/jetty/
Weblogic运行Java环境的Web服务https://www.oracle.com/weblogic/
PHP运行PHP环境的Web服务,需要nginx (LNMP)https://www.php.net/

安装Nginx

从官网安装 nginx.org/en
在这里插入图片描述

在这里插入图片描述

  • Mainline 主线版本 – 奇数版本 - 开发&测试版本 --> 开发团队 - 二次开发
  • Stable 稳定版本 – 偶数版本 - 稳定&生产 - 中小企业
  • Lengacy 历史版本 – 偶数版本 - 稳定的

download->stable 最下面->RHEL and derivatives->yum
在这里插入图片描述

# 配置官网yum源(stable版)
[root@front ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true#安装
yum install -y nginx#检查
[root@front ~]# rpm -qa nginx
nginx-1.26.1-2.el8.ngx.x86_64
[root@front ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/.build-id
/usr/lib/.build-id/3d
/usr/lib/.build-id/3d/2e2d5ec454efae0e8f8abeb6f056b4636a8a0c
/usr/lib/.build-id/4f
/usr/lib/.build-id/4f/adbe3f34e65c805137a92caf2f2035f1112f6a
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.26.1
/usr/share/doc/nginx-1.26.1/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

Nginx目录结构

不同的安装方式,目录、文件会有所变化

目录结构说明
/etc/nginx/Nginx各种配置的目录
/etc/nginx/nginx.conf主配置文件
/etc/nginx/conf.d/子配置文件(网站)目录
/etc/nginx/conf.d/default.conf默认的子配置文件
/usr/sbin/nginxngx命令,用于启动、停止、重启Nginx服务器
/usr/share/nginx/html/ngx默认的站点目录,网站的根目录
/var/log/nginx/ngx日志:访问日志、错误日志、跳转日志
其他目录和文件说明
/etc/logrotate.d/nginx日志切割(防止文件过大)
/etc/nginx/mime.types媒体类型文件,定义了MIME类型和扩展名的映射
/etc/nginx/fastcgi_params包含FastCGI参数的文件,用于处理PHP请求
/etc/nginx/uwsgi_params包含uWSGI参数的文件,用于处理Python请求
/usr/lib/systemd/system/nginx.servicesystemctl配置文件,用于使用systemd管理Nginx服务
/var/cache/nginx/缓存目录,用于存储临时文件和缓存内容

Nginx启动管理

源码安装的nginx启动方式不同,建议菜鸟教程

# 启动
[root@front ~]# systemctl enable nginx --now# 查看端口
[root@front ~]# ss -tunlp | grep 80
tcp   LISTEN 0      128          0.0.0.0:80         0.0.0.0:*    users:(("nginx",pid=2403,fd=6),("nginx",pid=2402,fd=6),("nginx",pid=2225,fd=6))                                                                      
# 查看进程
[root@front ~]# ps -ef | grep nginx
root        2225       1  0 16:56 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx       2402    2225  0 19:51 ?        00:00:00 nginx: worker process
nginx       2403    2225  0 19:51 ?        00:00:00 nginx: worker process
root        2851    1384  0 21:22 pts/0    00:00:00 grep --color=auto nginx# 访问测试
[root@front ~]# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

Nginx常用命令

命令选项解释
nginx -s stop停止Nginx服务器
nginx -s quit优雅地停止Nginx服务器
nginx -s reload重新加载Nginx配置文件
nginx -s reopen重新打开日志文件
nginx -s configtest测试Nginx配置文件的语法错误
nginx -t测试Nginx配置文件的语法错误
nginx -c filename指定配置文件路径
nginx -p path指定Nginx的运行路径
nginx -g “options”设置全局配置选项
nginx -V显示Nginx版本信息
nginx -h显示帮助信息

Nginx配置文件

主配置文件

在这里插入图片描述

指令说明
user指定Nginx进程运行的用户和组,默认是nobody
worker_processes指定工作进程的数量,默认为1
error_log指定错误日志文件的位置和级别,默认为/var/log/nginx/error.log
pid指定Nginx进程ID文件的位置,默认为/var/run/nginx.pid
events配置事件模块,包括工作进程的数量和类型
http配置HTTP模块,包括全局设置和监听端口
server配置虚拟主机,包括域名、根目录、日志文件等
location配置请求匹配的规则,包括资源路径、重定向、缓存等
access_log指定访问日志文件的位置和格式,默认为/var/log/nginx/access.log
error_log指定错误日志文件的位置和格式,默认为/var/log/nginx/error.log
sendfile指定是否开启sendfile传输模式,默认为on
tcp_nopush指定是否在发送数据前压缩缓冲区,默认为on
keepalive_timeout指定长连接的超时时间,默认为65
client_max_body_size指定客户端请求的最大体长,默认为1M
client_body_buffer_size指定客户端请求体长缓冲区的大小,默认为8k
gzip指定是否开启gzip压缩,默认为on
gzip_vary指定是否在响应头中包含gzip压缩的信息,默认为on
gzip_proxied指定是否压缩代理请求的响应,默认为any
gzip_types指定需要压缩的MIME类型,默认为text/html
gzip_disable指定不需要压缩的MIME类型,默认为msie6
fastcgi_pass指定FastCGI后端服务器的地址和端口,默认为127.0.0.1:9000
uwsgi_pass指定uWSGI后端服务器的地址和端口,默认为127.0.0.1:9000
proxy_pass指定代理后端服务器的地址和端口,默认为http://127.0.0.1:80
proxy_set_header指定代理请求的头部信息,默认为Host: $host
proxy_http_version指定代理请求的HTTP版本,默认为1.1
proxy_connect_timeout指定代理连接的超时时间,默认为60s
proxy_send_timeout指定代理发送请求的超时时间,默认为60s
proxy_read_timeout指定代理读取响应的超时时间,默认为60s
proxy_buffer_size指定代理请求缓冲区的大小,默认为4k
proxy_buffering指定是否启用代理缓冲区,默认为on
proxy_cache指定代理缓存的相关设置,默认为off
proxy_cache_key指定代理缓存键的生成规则,默认为 s c h e m e scheme schemeproxy_host$request_uri
proxy_cache_valid指定代理缓存的有效时间,默认为1d
proxy_cache_min_uses指定代理缓存的最小使用次数,默认为1
proxy_cache_use_stale指定代理缓存是否使用过时的数据,默认为off
proxy_cache_lock指定代理缓存是否锁定数据,默认为on
proxy_cache_lock_timeout指定代理缓存锁定数据的时间,默认为5s
proxy_cache_lock_age指定代理缓存锁定数据的时间,默认为5s
proxy_cache_lock_timeout指定代理缓存锁定数据的时间,默认为5s
proxy_cache_lock_age指定代理缓存锁定数据的时间,默认为5s
proxy_cache_lock_timeout指定代理缓存锁定

子配置文件

在这里插入图片描述

指令说明
listen指定监听端口
server_name指定域名,多个通过空格分割
location匹配请求中的uri(资源地址)
root指定站点目录(网站的根目录)
index指定站点的首页文件。用户访问的时候不加上任何的文件,展示首页文件
error_log指定错误状态码与对应的错误页面

相关文章:

Nginx01-HTTP简介与Nginx简介(安装、命令介绍、目录介绍、配置文件介绍)

目录 HTTP简介HTTP原理查看访问网站的详细流程curl -vwget --debug 查看网站访问量HTTP协议版本HTTP协议交互HTTP 请求请求报文起始行请求头 HTTP响应响应报文起始行响应头 Nginx常见的Web服务常见网站服务 安装NginxNginx目录结构Nginx启动管理Nginx常用命令 Nginx配置文件主配…...

JAVA: 抽象类和接口

Java中可以可以定义不含方法体的方法&#xff0c;方法的方法体由其所在类的子类根据实际需求去实现&#xff0c;这样的方法称为抽象方法&#xff08;Abstract Method&#xff09;&#xff0c;包含抽象方法的类必须是抽象类&#xff08;Abstract Class&#xff09;。 抽象方法和…...

风景的短视频一分钟:成都科成博通文化传媒公司

风景的短视频一分钟&#xff1a;时光凝固的画卷 在快节奏的现代生活中&#xff0c;我们常常被繁忙和琐碎所困扰&#xff0c;渴望在喧嚣中找到一丝宁静与美好。而风景的短视频&#xff0c;正是这样一份能够让我们在短时间内沉浸于自然之美的奇妙礼物。成都科成博通文化传媒公司…...

力扣--双指针15.三数之和

详细思路 排序数组&#xff1a;首先对数组 nums 进行排序&#xff0c;目的是为了方便后续使用双指针查找和避免重复结果。遍历数组&#xff1a;使用一个 for 循环从头遍历到倒数第三个元素。i 表示当前固定的元素。 跳过重复元素&#xff1a;如果当前元素 nums[i] 与前一个元素…...

C++ A (1020) : 幂运算

文章目录 一、题目描述二、参考代码 一、题目描述 二、参考代码 #include<bits/stdc.h> using namespace std; typedef long long ll;void qq(ll a, ll b, ll m) {if (a 0) cout << 0 << endl;;ll out 1;a % m;while (b > 0){if (b & 1)//奇数的最…...

GVM: Golang多版本管理利器

本文介绍了 Go Version Manager 的功能和使用方法&#xff0c;介绍了如何通过 GVM 在系统上安装和管理多个 Go 语言版本。原文: GVM: Go Version Manager, for Golang manage multiple versions Go 版本管理器&#xff08;GVM&#xff0c;Go Version Manager&#xff09;是一款…...

AlmaLinux9安装zabbix6.4

文章目录 [toc]一、配置源1&#xff09;查看系统2&#xff09;配置源 二、安装zabbix三、安装数据库1&#xff09;卸载mariadb2&#xff09;安装MySQL3&#xff09;配置开启自启动4&#xff09;MySQL设置root密码 四、导入数据五、配置zabbix六、参考地址六、参考地址 一、配置…...

基于翔云C#语言的身份证实名认证接口开发示例

现如今&#xff0c;安全与便捷成为了互联网服务的两大关键词。为了进一步提升用户体验并加强网络安全管理&#xff0c;国内多家主流App近日宣布完成一项重要功能升级——集成身份证实名认证系接口。这一举措标志着用户在进行App注册时&#xff0c;将享受到更加高效、安全的身份…...

MySQL中的redo log 和 undo log

undo log和redo log 先引入两个概念&#xff1a; 当我们做了一些操作 (update/delete/insert)&#xff0c;提交事务后要操作MySql中的数据。 为了能够提升性能&#xff0c;引入了两块区域&#xff1a;内存结构和磁盘结构。 磁盘结构&#xff1a; 主要存储的就是数据页&#x…...

net/http与gin框架的关系分析

要想学好 gin 框架&#xff0c;首先要学习 net/http 服务&#xff0c;而二者的关系又是重中之重。 本文所要做的任务就是将二者“连接” 起来&#xff0c;让读者掌握其中之精髓。 一、Golang HTTP 标准库示例 使用 golang 启动 http 服务非常简单&#xff0c;就是一个标准的 C…...

Docker的安装、启动和配置镜像加速

前言&#xff1a; Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 而企业部署一般都是采用Linux操作系统&#xff0c;而…...

Linux系统下+jmeter分布式压测

一.配置jdk&#xff08;Linux机都需配置同一个版本&#xff09; 下载Linux系统的jdk&#xff0c;下载地址&#xff1a;https://repo.huaweicloud.com/java/jdk/ 下载后的jdk文件上传到 /opt目录下 进入opt目录&#xff0c;查看jdk文件 cd /opt ll 1.解压文件 tar xzvf jd…...

点点点还有没有做下去的必要

大家好&#xff0c;我是洋子&#xff0c;最近工作特别忙&#xff0c;好久没更文章了 因为组织架构调整&#xff0c;原先的组长调离我所在已经3年多的业务线&#xff0c;我就承担起组长的角色了&#xff0c;除了日常跟进需求测试&#xff0c;还跟RD、跨业务线负责人开会&#x…...

uni-app增加home图标,实现回到功能主页(九)

最近在优化一个uni-app项目,项目中有许多设备需要点检,点检完成后可以继续点检;最后导致页面跳转用的是 uni.navigateTo({ url:"/pages/dianjian/dianjian/dianjianInfo?datatype="+this.datatype }); 众所周知,这个会将页面推入堆栈中,结合…...

Android关闭硬件加速对PorterDuffXfermode的影响

Android关闭硬件加速对PorterDuffXfermode的影响 跑的版本minSdk33 编译SDK34 import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Port…...

排序-插入排序与选择排序

插入排序 基本思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。 打扑克牌整理手牌用的就是插入排序的思想 代码实现 void InsertSort(int* a, int n) { assert(a); …...

【前端每日基础】day33——响应式布局

响应式布局是一种网页设计的方法&#xff0c;它可以使网站在不同的设备上&#xff08;如桌面电脑、平板电脑、手机等&#xff09;以及不同的屏幕尺寸上呈现出最佳的显示效果。响应式布局的目标是使用户在任何设备上都能够方便地访问和浏览网站&#xff0c;而不需要使用不同版本…...

leetcode 2981.找出出现至少三次的最长子特殊字符串(纯哈希表暴力)

leetcode 2981.找出出现至少三次的最长子特殊字符串&#xff08;传送门&#xff09; class Solution { public:int maximumLength(string s) {int hash[30][52] { 0 },len 1,maxn0;char last A;for (char ch : s) {if (ch last) len;else len 1;for (int i len; i > …...

集成算法实验与分析(软投票与硬投票)

概述 目的&#xff1a;让机器学习效果更好&#xff0c;单个不行&#xff0c;集成多个 集成算法 Bagging&#xff1a;训练多个分类器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1M​fm​(x) Boosting&#xff1a;从弱学习器开始加强&am…...

网络数据库后端框架相关面试题

面试是工作的第一步&#xff0c;面试中面试官所提出的问题千奇百怪&#xff0c;其中关于网络数据库后端框架面试题汇总如下&#xff1a; 1&#xff0c;关系型数据库和非关系型数据库的区别 关系型数据库主要有 MYsql Iracle SQLSever等 相对于非关系型数据库的优势为查询效率…...

模拟集成电路(6)----单级放大器(共源共栅级 Cascode Stage)

模拟集成电路(6)----单级放大器&#xff08;共源共栅级 Cascode Stage&#xff09; 大信号分析 对M1 V x ≥ V i n − V T H 1 V x V B − V G S 2 V B ≥ V i n − V T H 1 V G S 2 V_{x}\geq V_{in}-V_{TH1}\quad V_{x}V_{B}-V_{GS2}\\V_{B}\geq V_{in}-V_{TH1}V_{GS2} Vx…...

docker以挂载目录启动容器报错问题的解决

拉取镜像&#xff1a; docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2 创建实例&#xff1a; mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/dataecho "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasti…...

MySQL—函数—流程控制函数(基础)

一、引言 接下来&#xff0c;我们就进入函数的最后一个部分&#xff1a;流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中&#xff0c;经常用来实现条件的筛选&#xff0c;从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…...

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷7(私有云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…...

Jenkins、GitLab部署项目

1、安装JDK 1.1、下载openJdk11 yum -y install fontconfig java-11-openjdk1.2、查看安装的版本号 java -version1.3、配置环境变量 vim /etc/profile在最底部添加即可 export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 export PATH$JAVA_HOME/…...

21.Redis之分布式锁

1.什么是分布式锁 在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题. ⽽ java 的 synchronized 或者 C 的 std::mutex, 这样的锁都是只能在当前进程中⽣效, 在分布式的这种多…...

Mysql基础学习:mysql8 JSON字段查询操作

文章目录 一、查询JSON中某个属性值为XXX的数据量1、方式一2、方式二 二、查询的JSON中的value并去除双引号 一、查询JSON中某个属性值为XXX的数据量 1、方式一 select count(*)from table_namewhere JSON_CONTAINS(json-> $.filed1, "xxx")or JSON_CONTAINS(jso…...

搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四)

上一篇&#xff1a;搭建基于Django的博客系统增加广告轮播图&#xff08;三&#xff09; 下一篇&#xff1a;基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能&#xff08;五&#xff09; Sqlite3数据库迁移到MySQL 数据库 迁移原因 Django 的内置数据库 SQL…...

24年护网工具,今年想参加护网的同学要会用

24年护网工具集 吉祥学安全知识星球&#x1f517;http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21…...

解决TrueNas Scale部署immich后人脸识别失败,后台模型下载异常,immich更换支持中文搜索的CLIP大模型

这个问题搞了我几天终于解决了&#xff0c;搜遍网上基本没有详细针对TrueNas Scale部署immich应用后&#xff0c;CLIP模型镜像下载超时导致人脸识别失败&#xff0c;以及更换支持中文识别的CLIP模型的博客。 分析 现象&#xff1a;TrueNas Scale安装immich官方镜像应用后&…...