Nginx 基础使用(2025)

一、Nginx目录结构

[root@localhost ~]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp                 # POST 大文件暂存目录
├── conf                             # Nginx所有配置文件的目录
│   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
│   ├── fastcgi_params               # fastcgi的参数文件
│   ├── fastcgi_params.default       
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                   # 媒体类型
│   ├── mime.types.default
│   ├── nginx.conf                   #这是Nginx默认的主配置文件,日常使用和修改的文件
│   ├── nginx.conf.default
│   ├── scgi_params                  # scgi相关参数文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi临时数据目录
├── html                             # Nginx默认站点目录
│   ├── 50x.html                     # 错误页面优雅替代显示文件,例如出现502错误时会调用此页面
│   └── index.html                   # 默认的首页文件
├── logs                             # Nginx日志目录
│   ├── access.log                   # 访问日志文件
│   ├── error.log                    # 错误日志文件
│   └── nginx.pid                    # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp                       # 临时目录
├── sbin                             # Nginx 可执行文件目录
│   └── nginx                        # Nginx 二进制可执行程序
├── scgi_temp                        # 临时目录
└── uwsgi_temp                       # 临时目录

主要的目录包含conf,html,logs和sbin:

            ① conf目录用来存放配置文件相关

            ② html目录用来存放静态文件的默认目录 ,如前端包、htmlcss

            ③ logs目录用来存放日志信息

            ④ sbin目录用于存放可执行文件,可以用 ./nginx启动nginx:

    二、基本运行原理

    Nginx 是一种高性能的 HTTP 和反向代理服务器,它采用了经典的「Master-Worker」模型来运行。以下是 Nginx 基本运行原理的介绍:

    1. 启动过程

      • 当 Nginx 启动时,首先会创建一个 Master 进程。

      • Master 进程负责读取和验证配置文件(如 /conf/nginx.conf),确保配置的正确性。

    2. 配置文件

      • 配置文件中定义了 Nginx 的各种设置,包括监听的端口、处理请求的方式等。

    3. Worker 进程

      • Master 进程会根据配置文件中的设置,启动多个 Worker 进程。

      • 这些 Worker 进程是实际处理客户端请求的进程。

      • 每个 Worker 进程独立运行,平等地竞争来自客户端的请求。

    4. 请求处理

      • 客户端通过浏览器或其他方式向 Nginx 发送请求(如访问 http://192.168.44.101/index.html)。

      • 请求首先到达 Master 进程,然后由 Master 进程分发给一个 Worker 进程。

      • Worker 进程解析请求,并根据请求内容读取相应的文件(如 /html/index.html)。

      • Worker 进程处理完请求后,将响应返回给客户端。

    5. 进程管理

      • Master 进程负责管理 Worker 进程,包括接收外界信号、向 Worker 进程发送信号、监控 Worker 进程的运行状态等。

      • 如果某个 Worker 进程异常退出,Master 进程会自动重新启动一个新的 Worker 进程,以确保服务的连续性。

    6. 性能优化

      • 通常,Worker 进程的数量会设置为与机器的 CPU 核心数一致,以充分利用多核 CPU 的性能。

      • Nginx 的事件处理模型(如 epoll)使得 Worker 进程能够高效地处理大量并发连接。

    通过这种「Master-Worker」模型,Nginx 能够实现高性能、高并发的 Web 服务处理。

    三、Nginx配置与应用场景

    3.1 nginx.conf

    刚安装好的nginx.conf如下:

    #user  nobody;
    worker_processes  1;#error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
    }http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}
    

    去掉注释的简单版如下:

    worker_processes  1; #允许进程数量,建议设置为cpu核心数或者auto自动检测,
    #注意Windows服务器上虽然可以启动多个processes,但是实际只会用其中一个events {#单个进程最大连接数(最大连接数=连接数*进程数)#根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。worker_connections  1024;
    }http {#文件扩展名与文件类型映射表(是conf目录下的一个文件)include       mime.types;#默认文件类型,如果mime.types预先定义的类型没匹配上,默认使用二进制流的方式传输default_type  application/octet-stream;#sendfile指令指定nginx是否调用sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,
    #可设置为off,以平衡磁盘与网络IO处理速度。sendfile        on;#长连接超时时间,单位是秒keepalive_timeout  65;#虚拟主机的配置server {#监听端口listen       80;#域名,可以有多个,用空格隔开server_name  localhost;#配置根目录以及默认页面location / {root   html;index  index.html index.htm;}#出错页面配置error_page   500 502 503 504  /50x.html;#/50x.html文件所在位置location = /50x.html {root   html;}}}
    

    配置介绍:

    worker_processes
    worker_processes 1 ; 默认为 1,表示开启一个业务进程( Worker 进程 )。
    worker_connections
    worker_connections 1024 ; 单个业务进程可接受连接数。
    include mime.types;
    include mime.types ; 引入 http mime类型,文件包含了各种文件扩展名与 MIME 类型之间的映射关系。
    default_type application/octet-stream;
    default_type application/octet - stream ; 如果 mime类型没匹配上,默认将使用二进制流的方式传输文件。
    sendfile on;
    sendfile on ; 使用 linux sendfile(socket, file, len) 高效网络传输,也就是数据 0 拷贝。
    • sendfile 可以实现数据的零拷贝(zero-copy),即数据直接从文件系统传输到网络缓冲区,而不需要经过用户空间的拷贝,从而提高传输效率。

    未开启sendfile:

    开启sendfile:

    keepalive_timeout 65;

    keepalive_timeout 是 Nginx 配置中的一个指令,它用于设置保持连接打开状态的时间,也就是长连接的超时时间。

    • time:可以是指定的秒数,也可以是小数点表示的秒数(例如,65、65.5)。

    3.2 server_name匹配规则

    我们需要注意的是 servername 匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

    3.2.1完整匹配

    可以配置多个域名,例如:

    server_name  test81.xzj520520.cn  test82.xzj520520.cn;
    

    3.2.2通配符匹配

    使用通配符的方式如下

    ①通配符开始匹配:
    server_name  *.xzj520520.cn;
    
    ②通配符结束匹配:
    server_name  www.xzj520520.*;
    

    需要注意的是精确匹配的优先级大于通配符匹配和正则匹配。

    3.2.3正则匹配

    采用正则的匹配方式如下:

    server_name ~^[0-9]+\.mmban\.com$;

    正则匹配格式,必须以~开头,比如:server_name ~^www\d+\.example\.net$;。如果开头没有~,则nginx认为是精确匹配。在逻辑上,需要添加^$锚定符号。注意,正则匹配格式中.为正则元字符,如果需要匹配.,则需要反斜线转义。如果正则匹配中含有{}则需要双引号引用起来,避免nginx报错,如果没有加双引号,则nginx会报如下错误:directive "server_name" is not terminated by ";" in ...

    3.2.4 匹配顺序

    1. 精确匹配

         Nginx 首先查找是否有完全匹配的域名。例如,如果配置了 server_name example.com;,则该服务器块会匹配直接请求 example.com 的请求。
    2. 最长通配符匹配(以 * 开头)

         如果没有精确匹配,Nginx 会查找以星号(*)开头的最长通配符匹配。例如,server_name *.example.com; 会匹配任何以 .example.com 结尾的域名,如 sub.example.com
    3. 最长通配符匹配(以 * 结尾)

         如果没有找到以 * 开头的通配符匹配,Nginx 会查找以星号(*)结尾的最长通配符匹配。例如,server_name example.*; 会匹配任何以 example. 开头的域名,如 example.sub
    4. 正则表达式匹配

         如果上述匹配都未找到,Nginx 会查找正则表达式匹配。正则表达式必须以 ~ 开头(区分大小写)或 ~* 开头(不区分大小写)。例如,server_name ~^www\.example\.com$; 会匹配 www.example.com
    5. 特殊匹配

       server_name ""; 用于匹配 Host 请求头不存在的情况。
    6. 默认服务器块

          如果以上所有匹配都未找到,Nginx 会使用没有 server_name 指令的服务器块(如果有的话)作为默认服务器块来处理请求。

    3.3反向代理

    在 Nginx 中配置反向代理时,proxy_pass 指令用于指定客户端请求将被转发到的目标服务器地址。

    • 假设我们要将域名example.com的请求代理到后端服务器192.168.1.1008080端口。

    server {listen 80; // 监听 80 端口server_name example.com; // 指定域名location / {proxy_pass http://192.168.1.100:8080; // 将请求转发到后端服务器proxy_set_header Host $host; // 传递原始请求的 Host 头部proxy_set_header X-Real-IP $remote_addr; // 传递客户端的真实 IP 地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; // 添加 X - Forwarded - For 头部,用于记录请求经过的代理服务器proxy_set_header X-Forwarded-Proto $scheme; // 传递原始请求的协议(如 HTTP 或 HTTPS)}
    }
    • 在这个配置中,proxy_pass指令是核心,它指定了后端服务器的地址和端口。proxy_set_header指令用于设置转发请求时添加的头部信息,这对于后端服务器正确处理请求很重要。例如,X - Real - IP头部可以让后端服务器知道客户端的真实 IP 地址,而不是 Nginx 服务器的 IP 地址。

    3.4负载均衡

    3.4.1 如何配置负载均衡

    可以通过upstream模块定义一组后端服务器,然后在proxy_pass中引用这个upstream来实现负载均衡。

    upstream backend {server 192.168.1.100:8080;server 192.168.1.101:8080;server 192.168.1.102:8080;
    }server {listen 80;server_name example.com;location / {proxy_pass http://backend; // 引用 upstream 中定义的服务器组proxy_set_header Host $host;proxy_set_header X - Real - IP $remote_addr;proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;proxy_set_header X - Forwarded - Proto $scheme;}
    }

    默认情况下,Nginx 使用轮询的方式将请求分发到upstream中的服务器。也可以通过least_conn(最少连接)或ip_hash(基于 IP 哈希)等指令来指定其他负载均衡策略

    3.4.2 负载均衡策略

    1. 轮询(默认策略)
    • 工作原理:默认情况下,Nginx 使用轮询策略,按照顺序依次将请求分配给后端服务器。

    • 适用场景:适用于后端服务器性能相近且请求量相对均匀的场景。

    • 配置示例

      upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070;
      }

    2. 权重(Weight)
    • 工作原理:通过weight指令为每台服务器分配权重。权重越高,分配到的请求越多。权重默认为1。

    • 适用场景:适用于后端服务器性能不均的情况,高性能服务器可以分配更高的权重。

    • 配置示例

    upstream backend {server 127.0.0.1:8050 weight=10;  # 高性能服务器server 127.0.0.1:8060 weight=1;   # 低性能服务器server 127.0.0.1:8070 weight=5;   # 中等性能服务器
    }

    3. 禁用服务器(Down)
    • 工作原理:使用down指令可以将某台服务器标记为暂时不参与负载均衡。

    • 适用场景:当某台服务器需要维护或出现故障时,可以将其标记为down

    • 配置示例

      upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060 down;  # 暂时禁用这台服务器server 127.0.0.1:8070;
      }

    4. 备用服务器(Backup)
    • 工作原理:使用backup指令可以将某台服务器标记为备用服务器。只有当其他所有非备用服务器都不可用(如宕机或繁忙)时,才会将请求转发到备用服务器。

    • 适用场景:用于提高系统的可用性,确保在部分服务器故障时仍然可以提供服务。

    • 配置示例

    upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070 backup;  # 备用服务器
    }

    5. IP 哈希(IP Hash)
    • 工作原理:根据客户端的IP地址进行哈希计算,将请求分配到特定的服务器。同一个客户端的请求总是被分配到同一台服务器。

    • 适用场景:适用于需要会话保持的应用场景,例如在线购物车系统。

    • 配置示例

    upstream backend {ip_hash;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    6. 最少连接(Least Conn)
    • 工作原理:将新的请求分配给当前连接数最少的服务器。

    • 适用场景:适用于请求量波动较大且服务器性能相近的场景。

    • 配置示例

    upstream backend {least_conn;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    7. URL 哈希(URL Hash)
    • 工作原理:根据请求的URL进行哈希计算,将请求分配到特定的服务器。适用于静态资源的负载均衡。

    • 适用场景:适用于静态资源的分配,例如图片、CSS 文件等。

    • 配置示例

    upstream backend {hash $request_uri consistent;  # 使用请求的 URI 进行哈希server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    8. 响应时间(Fair)
    • 工作原理:根据后端服务器的响应时间来分配请求。响应时间越短的服务器,分配到的请求越多。

    • 适用场景:适用于对响应时间敏感的应用场景。

    • 配置示例

    upstream backend {fair;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    3.4.3 综合配置示例

    以下是一个综合了多种策略的配置示例:

    upstream backend {ip_hash;  # 保持会话least_conn;  # 最少连接server 127.0.0.1:8050 weight=10;server 127.0.0.1:8060 weight=5;server 127.0.0.1:8070 weight=1 backup;  # 备用服务器server 127.0.0.1:8080 down;  # 禁用服务器
    }server {listen 80;server_name example.com;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
    }

    3.4.3 总结

    • 轮询:适用于服务器性能相近的场景。

    • 权重:适用于服务器性能不均的场景。

    • 最少连接:适用于请求量波动较大的场景。

    • IP 哈希:适用于需要会话保持的场景。

    • URL 哈希:适用于静态资源的负载均衡。

    • 响应时间:适用于对响应时间敏感的场景。

    • 备用服务器:用于提高系统的可用性。

    • 禁用服务器:用于维护或故障处理。

    根据实际需求选择合适的策略和配置,可以有效提升系统的性能和可用性。

     

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

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

    相关文章

    用spring-webmvc包实现AI(Deepseek)事件流(SSE)推送

    前后端: Spring Boot Angular spring-webmvc-5.2.2包 代码片段如下: 控制层: GetMapping(value "/realtime/page/ai/sse", produces MediaType.TEXT_EVENT_STREAM_VALUE)ApiOperation(value "获取告警记录进行AI分析…

    基于Python的招聘推荐数据可视化分析系统

    【Python】基于Python的招聘推荐数据可视化分析系统(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 🚀🌟 基于Python的招聘推荐数据可视化分析系统!&#x1…

    使用注解开发springMVC

    引言 在学习过第一个springMVC项目建造过后&#xff0c;让我们直接进入真实开发中所必需的注解开发&#xff0c; 是何等的简洁高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在资源过滤的问题&#xff0c;在maven依赖中加入 <build><resources>&l…

    linux专题3-----禁止SSH的密码登录

    要在linux系统中禁止密码登录&#xff0c;您可以通过修改 SSH 配置来实现。请按照以下步骤操作(此处以 Ubuntu为例)&#xff1a; 1、SSH 登录到您的服务器&#xff08;或直接在命令行模式下&#xff09;。 2、备份 SSH 配置文件&#xff1a; 在终端中运行以下命令以备份现有的…

    基于LangChain和通义(Tongyi)实现NL2SQL的智能检索(无需训练)

    在数据驱动的时代,如何高效地从数据库中获取信息成为了一个重要的挑战。自然语言到SQL(NL2SQL)技术提供了一种便捷的解决方案,使用户能够用自然语言查询数据库,而无需深入了解SQL语法。本文将探讨如何利用LangChain和通义(Tongyi)实现NL2SQL的智能检索,具体步骤如下: …

    深度学习处理文本(10)

    保存自定义层 在编写自定义层时&#xff0c;一定要实现get_config()方法&#xff1a;这样我们可以利用config字典将该层重新实例化&#xff0c;这对保存和加载模型很有用。该方法返回一个Python字典&#xff0c;其中包含用于创建该层的构造函数的参数值。所有Keras层都可以被序…

    机器视觉3D中激光偏镜的优点

    机器视觉的3D应用中,激光偏镜(如偏振片、波片、偏振分束器等)通过其独特的偏振控制能力,显著提升了系统的测量精度、抗干扰能力和适应性。以下是其核心优点: 1. 提升3D成像精度 抑制环境光干扰:偏振片可滤除非偏振的环境杂光(如日光、室内照明),仅保留激光偏振信号,大…

    线程同步的学习与应用

    1.多线程并发 1).多线程并发引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } i…

    写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?

    VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码? 分享 1. 在 VB.NET 中指定运行 Sub Main 在 VB.NET 里&#xff0c;你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式&#xff1a; 方式一&#xff1a;在项目属性…

    【AI插件开发】Notepad++ AI插件开发实践(代码篇):从Dock窗口集成到功能菜单实现

    一、引言 上篇文章已经在Notepad的插件开发中集成了选中即问AI的功能&#xff0c;这一篇文章将在此基础上进一步集成&#xff0c;支持AI对话窗口以及常见的代码功能菜单&#xff1a; 显示AI的Dock窗口&#xff0c;可以用自然语言向 AI 提问或要求执行任务选中代码后使用&…

    关联容器-模板类pair数对

    关联容器 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。 两个主要的关联容器(associative-container),set和map。 set 中每个元素只包…

    京东运维面试题及参考答案

    目录 OSPF 实现原理是什么? 请描述 TCP 三次握手的过程。 LVS 的原理是什么? 阐述 Nginx 七层负载均衡的原理。 Nginx 与 Apache 有什么区别? 如何查看监听在 8080 端口的是哪个进程(可举例:netstat -tnlp | grep 8080)? OSI 七层模型是什么,请写出各层的协议。 …

    输入框输入数字且保持精度

    在项目中如果涉及到金额等需要数字输入且保持精度的情况下&#xff0c;由于输入框是可以随意输入文本的&#xff0c;所以一般情况下可能需要监听输入框的change事件&#xff0c;然后通过正则表达式去替换掉不匹配的文本部分。 由于每次文本改变都会被监听&#xff0c;包括替换…

    使用 requests 和 BeautifulSoup 解析淘宝商品

    以下将详细解释如何通过这两个库来实现按关键字搜索并解析淘宝商品信息。 一、准备工作 1. 安装必要的库 在开始之前&#xff0c;确保已经安装了 requests 和 BeautifulSoup 库。如果尚未安装&#xff0c;可以通过以下命令进行安装&#xff1a; bash pip install requests…

    C#调用ACCESS数据库,解决“Microsoft.ACE.OLEDB.12.0”未注册问题

    C#调用ACCESS数据库&#xff0c;解决“Microsoft.ACE.OLEDB.12.0”未注册问题 解决方法&#xff1a; 1.将C#采用的平台从AnyCpu改成X64 2.将官网下载的“Microsoft Access 2010 数据库引擎可再发行程序包AccessDatabaseEngine_X64”文件解压 3.安装解压后的文件 点击下载安…

    【文献阅读】Vision-Language Models for Vision Tasks: A Survey

    发表于2024年2月 TPAMI 摘要 大多数视觉识别研究在深度神经网络&#xff08;DNN&#xff09;训练中严重依赖标注数据&#xff0c;并且通常为每个单一视觉识别任务训练一个DNN&#xff0c;这导致了一种费力且耗时的视觉识别范式。为应对这两个挑战&#xff0c;视觉语言模型&am…

    【Kubernetes】StorageClass 的作用是什么?如何实现动态存储供应?

    StorageClass 使得用户能够根据不同的存储需求动态地申请和管理存储资源。 StorageClass 定义了如何创建存储资源&#xff0c;并指定了存储供应的配置&#xff0c;例如存储类型、质量、访问模式等。为动态存储供应提供了基础&#xff0c;使得 Kubernetes 可以在用户创建 PVC 时…

    Muduo网络库介绍

    1.Reactor介绍 1.回调函数 **回调&#xff08;Callback&#xff09;**是一种编程技术&#xff0c;允许将一个函数作为参数传递给另一个函数&#xff0c;并在适当的时候调用该函数 1.工作原理 定义回调函数 注册回调函数 触发回调 2.优点 异步编程 回调函数允许在事件发生时…

    Debian编译安装mysql8.0.41源码包 笔记250401

    Debian编译安装mysql8.0.41源码包 以下是在Debian系统上通过编译源码安装MySQL 8.0.41的完整步骤&#xff0c;包含依赖管理、编译参数优化和常见问题处理&#xff1a; 准备工作 1. 安装编译依赖 sudo apt update sudo apt install -y \cmake gcc g make libssl-dev …

    Git常用问题收集

    gitignore 忽略文件夹 不生效 有时候我们接手别人的项目时&#xff0c;发现有的忽略不对想要修改&#xff0c;但发现修改忽略.gitignore后无效。原因是如果某些文件已经被纳入版本管理在.gitignore中忽略路径是不起作用的&#xff0c;这时候需要先清除本地缓存&#xff0c;然后…