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的工作原理:
- 链接:Browser和WebServer建立链接,通过打开socket表明链接建立成功。
- 请求:Browser通过socket向WebServer提交请求,一般为HTTP的GET或POST。
- 应答:Server通过特定端口接收监听到的Web页面请求,若请求存在再通过HTTP发送Browser需要的信息;若请求不存在则返回错误提示。
- 关闭连接:每完成一次应答,就会断开一次链接。
查看访问网站的详细流程
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&tpl=mn&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>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必读</a> <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a> 京ICP证030173号 <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.0 | http1.1 | http2.0 | http3.0 | |
|---|---|---|---|---|
| 特点 | 短连接,每次请求都需要重复建立断开连接 | 加入长连接功能 | 增加并发,访问更快 | 基于udp更快,应用于流媒体 |
| 占用服务端资源 | keepalive(响应后不会立刻断开) | |||
| 是否加密 | http不加密,https加密 | 默认基于https | ||
| 基于tcp/udp | tcp | tcp | tcp | udp |
HTTP协议交互
- 浏览器发送request请求
- 服务器回复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 |表示异常,服务端问题|
| 状态码 | 状态码描述 | 解释 |
|---|---|---|
| 200 | OK | 访问正常,服务器成功处理了请求。 |
| 301 | Moved Permanently | 永久跳转,请求的资源已被永久移动到新位置。 |
| 302 | Found或Moved Temporarily | 临时跳转,请求的资源临时移动到新位置。 |
| 304 | Not Modified | 浏览器缓存,请求的资源未修改,可以使用缓存的内容。 |
| 403 | Forbidden | 权限拒绝(拒绝访问)。权限问题,如未授权访问;首页文件问题,如配置错误导致无法访问首页。 |
| 404 | Not Found | 文件找不到,一般辅助错误日志排查,用于定位请求的资源不存在的问题。 |
| 500 | Internal Error | 内部错误,如服务器配置错误、应用程序错误等。SElinux开启时,可能会导致一些异常。一般需要辅助错误日志来排查。 |
| 502 | Bad Gateway | 网关错误,一般发生在负载均衡器中,请求发送到后端服务器,但后端服务器没有响应,导致网关返回错误。 |
| 503 | Service Unavailable | 服务临时不可用,后端负载异常等情况,或者人为设置(如系统升级)导致服务暂时不可用。 |
| 504 | Gateway 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 X | http://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/nginx | ngx命令,用于启动、停止、重启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.service | systemctl配置文件,用于使用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中可以可以定义不含方法体的方法,方法的方法体由其所在类的子类根据实际需求去实现,这样的方法称为抽象方法(Abstract Method),包含抽象方法的类必须是抽象类(Abstract Class)。 抽象方法和…...
风景的短视频一分钟:成都科成博通文化传媒公司
风景的短视频一分钟:时光凝固的画卷 在快节奏的现代生活中,我们常常被繁忙和琐碎所困扰,渴望在喧嚣中找到一丝宁静与美好。而风景的短视频,正是这样一份能够让我们在短时间内沉浸于自然之美的奇妙礼物。成都科成博通文化传媒公司…...
力扣--双指针15.三数之和
详细思路 排序数组:首先对数组 nums 进行排序,目的是为了方便后续使用双指针查找和避免重复结果。遍历数组:使用一个 for 循环从头遍历到倒数第三个元素。i 表示当前固定的元素。 跳过重复元素:如果当前元素 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 的功能和使用方法,介绍了如何通过 GVM 在系统上安装和管理多个 Go 语言版本。原文: GVM: Go Version Manager, for Golang manage multiple versions Go 版本管理器(GVM,Go Version Manager)是一款…...
AlmaLinux9安装zabbix6.4
文章目录 [toc]一、配置源1)查看系统2)配置源 二、安装zabbix三、安装数据库1)卸载mariadb2)安装MySQL3)配置开启自启动4)MySQL设置root密码 四、导入数据五、配置zabbix六、参考地址六、参考地址 一、配置…...
基于翔云C#语言的身份证实名认证接口开发示例
现如今,安全与便捷成为了互联网服务的两大关键词。为了进一步提升用户体验并加强网络安全管理,国内多家主流App近日宣布完成一项重要功能升级——集成身份证实名认证系接口。这一举措标志着用户在进行App注册时,将享受到更加高效、安全的身份…...
MySQL中的redo log 和 undo log
undo log和redo log 先引入两个概念: 当我们做了一些操作 (update/delete/insert),提交事务后要操作MySql中的数据。 为了能够提升性能,引入了两块区域:内存结构和磁盘结构。 磁盘结构: 主要存储的就是数据页&#x…...
net/http与gin框架的关系分析
要想学好 gin 框架,首先要学习 net/http 服务,而二者的关系又是重中之重。 本文所要做的任务就是将二者“连接” 起来,让读者掌握其中之精髓。 一、Golang HTTP 标准库示例 使用 golang 启动 http 服务非常简单,就是一个标准的 C…...
Docker的安装、启动和配置镜像加速
前言: Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 而企业部署一般都是采用Linux操作系统,而…...
Linux系统下+jmeter分布式压测
一.配置jdk(Linux机都需配置同一个版本) 下载Linux系统的jdk,下载地址:https://repo.huaweicloud.com/java/jdk/ 下载后的jdk文件上传到 /opt目录下 进入opt目录,查看jdk文件 cd /opt ll 1.解压文件 tar xzvf jd…...
点点点还有没有做下去的必要
大家好,我是洋子,最近工作特别忙,好久没更文章了 因为组织架构调整,原先的组长调离我所在已经3年多的业务线,我就承担起组长的角色了,除了日常跟进需求测试,还跟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…...
排序-插入排序与选择排序
插入排序 基本思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 打扑克牌整理手牌用的就是插入排序的思想 代码实现 void InsertSort(int* a, int n) { assert(a); …...
【前端每日基础】day33——响应式布局
响应式布局是一种网页设计的方法,它可以使网站在不同的设备上(如桌面电脑、平板电脑、手机等)以及不同的屏幕尺寸上呈现出最佳的显示效果。响应式布局的目标是使用户在任何设备上都能够方便地访问和浏览网站,而不需要使用不同版本…...
leetcode 2981.找出出现至少三次的最长子特殊字符串(纯哈希表暴力)
leetcode 2981.找出出现至少三次的最长子特殊字符串(传送门) 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 > …...
集成算法实验与分析(软投票与硬投票)
概述 目的:让机器学习效果更好,单个不行,集成多个 集成算法 Bagging:训练多个分类器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1Mfm(x) Boosting:从弱学习器开始加强&am…...
网络数据库后端框架相关面试题
面试是工作的第一步,面试中面试官所提出的问题千奇百怪,其中关于网络数据库后端框架面试题汇总如下: 1,关系型数据库和非关系型数据库的区别 关系型数据库主要有 MYsql Iracle SQLSever等 相对于非关系型数据库的优势为查询效率…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...


