最新资讯

  • Nginx介绍、安装、实战及用法!!!

Nginx介绍、安装、实战及用法!!!

2025-05-19 01:37:40 1 阅读

一、Nginx简介


1、Nginx概述       


        Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。


2、正向代理


        正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

在浏览器配置代理服务器,通过代理服务器去访问这个网址

3、反向代理

    
        反向代理,其实客户端对代理是无感知的(和正向代理的区别,刚刚说正向代理是需要在客户端浏览器中配置代理服务器),因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器(9001)去选择目标服务器(8001)获取数据后,在返回给客户端,此时反向代理服务器目标服务器对外就是一个服务器暴露的是代理服务器地址(9001),隐藏了真实服务器 IP 地址(8001)。

反向代理服务器比如端口号是9001,真正的内部服务器是8001,但是客户端不知道,把后面的tomcat和反向代理服务器当作一个整体。

4、负载均衡

        一般请求


        单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是所谓的负载均衡。

        把15个请求平均分发到3个服务器,每个服务器5个请求。

5、动静分离


        为了加快网站的解析速度,可以把动态页面静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。


二、Nginx安装


我这边ngnix就在windows上面安装【一般安装在linux系统中才能发挥它最大的效果】

下载安装包

nginx: download

直接解压即可

三、Ngnix配置文件 

我们这边就直接看配置文件

D: ginx-1.26.2conf gnix.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; #第一部分


events {
    worker_connections  1024;  #第二部分
}


http {                   #第三部分
    include       mime.types;
    default_type  application/octet-stream;

    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;
        location = /50x.html {
            root   html;
        }

    }

}

第一部分:全局块


        从配置文件开始events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)允许生成的 worker process 数进程 PID 存放路径日志存放路径类型以及配置文件的引入等。

1. user nobody;

这行是注释掉的,它的作用是指定 Nginx 进程的运行用户。在 Linux 系统中,每个进程都有一个用户身份,user 指令允许你指定 Nginx 工作进程运行时所使用的用户和用户组。

  • 如果取消注释并且配置为 user nobody;,那么 Nginx 会以 nobody 用户身份运行。
  • 默认情况下,Nginx 会使用启动 Nginx 的用户(通常是 nginxwww-data,具体取决于你在安装时配置的用户)。

一般来说,如果你不修改这个配置,Nginx 会自动选择一个默认的用户,通常是 nginx

worker_processes  1; 

这是Ngnix服务器并发处理服务的关键配置,worker_processes值越大,可以支持的并发处理量越多,但是会受到硬件、软件等设备的制约。 

这个配置指示 Nginx 启动的 工作进程 数量。

  • 工作进程 是 Nginx 处理请求的单位,每个工作进程负责处理一定的连接。通常情况下,Nginx 是事件驱动模型,即每个工作进程可以同时处理多个连接。
  • worker_processes 的值通常设置为服务器的 CPU 核心数,以充分利用多核 CPU 的性能。如果你的服务器有多个核心,可以将其设置为多于 1 的值,例如 worker_processes 4;。但在这段配置中,设置的是 1,意味着 Nginx 将启动一个工作进程。

注意: 在生产环境中,通常建议根据服务器的 CPU 核心数来调整 worker_processes,以提高并发性能。

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

这三行配置是关于 错误日志 的设置,但它们被注释掉了(以 # 开头)。具体含义如下:

error_log logs/error.log;

  • 该指令用于设置 Nginx 错误日志的文件路径。默认情况下,Nginx 会将错误日志写入 logs/error.log 文件中。
  • 如果你取消注释并配置它,Nginx 会将错误日志记录在该路径下。
  • 错误日志用于记录 Nginx 运行中的各种错误信息,如启动失败、配置文件错误等。

error_log logs/error.log notice;

  • 该行指定了日志的级别为 notice。Nginx 支持多种日志级别,例如:
    • debug: 最详细的日志,用于调试。
    • info: 一般信息,记录普通的运行时信息。
    • notice: 比 info 级别更重要的信息,通常用于表示正常的操作。
    • warn: 警告信息,表示有潜在的问题,但不影响正常运行。
    • error: 错误信息,表示出现了问题。
    • crit: 严重错误,通常需要马上处理。

error_log logs/error.log info;

  • 该行将日志级别设置为 info,表示记录更详细的信息。

总结:

  • 这三行的作用是控制日志记录的详细程度,通过不同的日志级别来控制哪些信息需要被记录。默认情况下,日志等级可能设置为 error,但可以根据需要调整。

#pid        logs/nginx.pid;

这行配置是注释掉的,指示 Nginx 将其进程 ID(PID)存储在一个文件中。

  • pid 用于指定保存 Nginx 主进程 ID 的文件路径,通常该文件会存储在 logs/nginx.pid
  • 取消注释并配置该行后,Nginx 会将主进程的 PID 写入 logs/nginx.pid 文件中。这对于 Nginx 进程的管理(如启动、停止、重载配置等)非常有用。

总结:

  1. user nobody;:指定运行 Nginx 的用户(这里注释掉了,使用默认用户)。
  2. worker_processes 1;:指定 Nginx 启动的工作进程数,通常建议设置为 CPU 核心数。
  3. error_log logs/error.log;:设置错误日志的文件路径(默认 logs/error.log)。
  4. pid logs/nginx.pid;:指定主进程的 PID 存储路径(默认 logs/nginx.pid)。

这段配置文件主要是设置 Nginx 运行时的一些基本参数,通常在开发、调试或者生产环境中,根据需要进行适当的调整。

第二部分:events块


        events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

        下图例子就表示每个 work process 支持的最大连接数为 1024. 这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

events {
    worker_connections  1024;
}

第三部分:http块


        这算是 Nginx 服务器配置中最频繁的部分代理、缓存日志定义等绝大多数功能和第三方模块的配置都在这里。

        需要注意的是:http 块也可以包括 http 全局块server 块

①、http 全局块

        http 全局块配置的指令包括文件引入MIME-TYPE 定义日志自定义连接超时时间单链接请求数上限等。如下

1. include mime.types;

  • 作用:这行配置告诉 Nginx 加载 mime.types 文件,这个文件定义了常见的文件扩展名与 MIME 类型之间的映射关系。比如 .html 文件类型是 text/html.jpgimage/jpeg 等。
  • 解释mime.types 文件通常包含了一些标准的 MIME 类型,Nginx 会根据文件扩展名来推断文件的类型,确保它能够正确地设置 Content-Type 响应头。

2. default_type application/octet-stream;

  • 作用:这个配置指定了默认的 MIME 类型。如果 Nginx 在 mime.types 文件中找不到某个文件的 MIME 类型,它会使用这个默认值。
  • 解释application/octet-stream 是一个通用的二进制文件类型,通常用于无法识别的文件类型。这样做的好处是,在没有明确的 MIME 类型时,可以保证文件不会被错误处理。

3.

  • 作用:这段配置是被注释掉的,它定义了访问日志的格式。Nginx 的访问日志是非常重要的,用于记录访问者的请求。

  • 解释

    • $remote_addr:客户端的 IP 地址。
    • $remote_user:客户端的用户名(如果启用了基本认证)。
    • $time_local:请求发生的本地时间。
    • $request:请求的原始字符串,例如 GET /index.html HTTP/1.1
    • $status:HTTP 响应状态码。
    • $body_bytes_sent:响应体的字节数。
    • $http_referer:请求来源的 URL。
    • $http_user_agent:客户端浏览器的信息。
    • $http_x_forwarded_for:客户端的真实 IP(当通过代理服务器访问时)。

    如果取消注释并启用这一行,它会影响 Nginx 如何记录访问日志。你可以定义不同的格式来满足你的日志需求。

4. #access_log logs/access.log main;

  • 作用:配置访问日志的文件路径以及日志格式(此处是 main 格式)。
  • 解释:如果启用这行配置,Nginx 将会将访问日志写入到 logs/access.log 文件中,并且使用前面定义的 main 格式。如果你想要自定义日志路径或日志格式,可以修改这行配置。

5. sendfile on;

  • 作用:开启 sendfile 功能。
  • 解释sendfile 用于高效地传输文件,它允许 Nginx 从磁盘直接将文件传输到网络连接,而不需要先将文件读取到内存中。这对于大文件的传输非常有效,能够提高文件的传输效率。

6. #tcp_nopush on;

  • 作用:这行被注释掉了,默认情况下它是关闭的。启用后,会影响 Nginx 向客户端发送响应数据包的方式。

  • 解释

    • tcp_nopush 可以提高大文件(如图片、视频等)的传输效率。它会将多个小的数据包合并成一个大包一起发送,从而减少了网络上的数据包数量,提高了效率。

    在某些情况下,这个选项可以帮助减少网络带宽的消耗,提高文件传输的性能。

7. #keepalive_timeout 0;

  • 作用:这行配置被注释掉了,默认情况下是 65 秒。它设置了 连接的保持活动时间,即 Nginx 在处理完请求后,保持与客户端的连接处于活动状态的时间。
  • 解释
    • keepalive_timeout 设置了服务器保持客户端连接的最大时间。在此时间内,如果客户端继续请求,Nginx 会复用该连接,而不是重新建立连接。
    • 如果设置为 0,表示禁用连接保持(即每次请求都会创建一个新的连接)。但通常会将其设置为非零值(例如 65),因为保持连接能够减少连接建立的开销,提高性能。

8. keepalive_timeout 65;

  • 作用:这行配置指定了保持活动连接的超时时间。
  • 解释
    • keepalive_timeout 65; 意味着在没有新请求的情况下,Nginx 会保持与客户端的连接 65 秒。如果超过这个时间没有新请求,连接将会被关闭。
    • 保持连接活跃(keep-alive)有助于提高性能,因为它减少了建立新连接的开销。

9. #gzip on;

  • 作用:这行配置被注释掉了,默认情况下是关闭的。它指示是否启用 gzip 压缩
  • 解释
    • 启用 gzip 后,Nginx 会在响应中对内容进行压缩,减小数据大小,加速页面加载,尤其适合传输文本类型的文件(如 HTML、CSS、JS 文件)。
    • 如果启用这行配置,Nginx 会根据请求头的 Accept-Encoding 来决定是否对响应内容进行压缩。

如下图: 

②、server 块

        这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块

1、全局 server 块

        最常见的配置是本虚拟机主机的监听配置本虚拟主机的名称IP 配置

1. listen 80;

  • 作用:指示 Nginx 在端口 80 上监听请求。80 是 HTTP 协议的标准端口,通常用于接收浏览器发出的普通 HTTP 请求。
  • 解释:当用户访问这个服务器时,如果没有指定端口,默认会访问 80 端口。【可以理解为ngnix运行占用了80端口,在浏览器访问80端口就是访问ngnix服务器(Nginx是一个高性能的HTTP和反向代理web服务器)】

“监听”(listening)通常指的是一个网络服务(如Nginx、后端服务器等)在某个特定的端口上等待并接收来自客户端的连接请求 。

当它在80端口上监听时,它实际上是在说:“我在这台机器的80端口上等待,准备接收任何HTTP请求。监听也可以理解为占用该端口

当提到Nginx在端口80上监听请求时,这意味着Nginx服务器被配置为在其网络接口上监听TCP协议的80端口,以接收来自客户端(如Web浏览器)的HTTP请求。端口80是HTTP协议的默认端口,意味着当用户在浏览器中访问一个网址(如http://example.com)而没有指定端口号时,浏览器会自动尝试通过80端口与服务器通信。

2. server_name localhost;

  • 作用:定义ngnix服务器的域名或 IP 地址。这里设置为 localhost,表示当请求的主机名为 localhost 时,将会匹配此 server 块。
  • 解释localhost 通常指代本地计算机(127.0.0.1)。你可以根据需要替换为自己的域名或 IP 地址。例如,example.comwww.example.com

server_name 指定了 Nginx 服务器响应的域名或 IP 地址,但它的作用并不是直接定义 Nginx 服务器运行的 IP 地址,而是决定 Nginx 如何根据请求中的 Host 头部来选择匹配的 server 块。

假设:

  • server_name example.com;:当请求的 Host 头部为 example.com 时,Nginx 会使用这个 server 块来处理请求。
  • server_name localhost;:当请求的 Host 头部为 localhost 时,Nginx 会使用这个 server 块来处理请求。
server {
    listen 80;
    server_name example.com;
}

server {
    listen 80;
    server_name localhost;
}

 总之,可以理解:

 这段配置确实表明Nginx会在localhost的80端口上运行,并准备接收和处理HTTP请求。

  server {
        listen       9080;
        server_name  localhost,pay-test.anjulian.com.cn,172.25.52.60;

 也可能有这种配置:这个server_name虽然有三个名字,不过都代表一台服务器。

3. #charset koi8-r;

  • 作用:这行是注释掉的,表示你可以设置字符集(例如 koi8-r 是一种字符集,常用于俄语)。
  • 解释:如果启用的话,它会设置服务器响应的默认字符编码。在此配置中,默认编码是 UTF-8

4. #access_log logs/host.access.log main;

  • 作用:这行也被注释掉了,通常是用于定义访问日志的位置和格式。Nginx 将请求的详细信息记录到指定的文件中。
  • 解释:如果取消注释并启用,它会将访问日志写入 logs/host.access.log 文件,并使用 main 格式记录日志。日志记录了客户端的请求信息,包括 IP 地址、请求的 URL、响应状态码等。
2、location 块

        一个 server 块可以配置多个 location 块。

        这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

  location / {
            root   html;
            index  index.html index.htm;
        }
  • 作用:定义了请求的根目录 / 如何处理。
    • root html;:将请求的根目录映射到本地的 html 目录(通常是网站的根目录)。
    • index index.html index.htm;:指定当访问根路径时,默认查找的文件是 index.htmlindex.htm,如果文件存在,它们会作为响应内容返回。
  • 解释:当用户访问该服务器时,如果请求路径是 /(即根路径),Nginx 会寻找 html 目录下的 index.htmlindex.htm 文件,并将其返回给客户端

location = /50x.html { root html; }

  • 作用:这个 location 配置定义了当访问 /50x.html 时,应该返回哪个文件。
  • 解释root html; 表示 50x.html 文件位于 Nginx 配置的 html 目录中

 

后面注释的地方不用管了 

③、总结:

        虚拟主机是一种技术概念,它指的是在单个物理服务器上通过软件技术划分出多个逻辑上的服务器。这些逻辑上的服务器各自独立运行,仿佛它们是独立的物理服务器一样。Nginx 作为一个高性能的 HTTP 和反向代理服务器,通过其强大的配置功能,可以在单个服务器上配置多个 server 块,每个 server 块代表一个虚拟主机

        其次,每个 server 块可以监听不同的域名、IP 地址或端口号,并根据请求的不同将请求转发到对应的虚拟主机上进行处理。这样,虽然物理上只有一台服务器,但逻辑上却可以实现多个独立运行的服务器,每个服务器都可以有自己的域名、根目录、日志文件等配置信息。

定义了两个 server 块,每个块都监听一个不同的端口(9080 和 9443)。因此,当启动 Nginx 服务器时,它会同时占用这两个端口。

访问不同的端口,然后根据不同的server块处理请求。

server块中的location指令用于定义请求的路由规则。它可以根据请求的URL路径将请求转发到不同的后端服务器、文件系统位置或者执行特定的操作(如重定向等)

server {
    listen       80;
    server_name  blog.example.com;
    location / {
        root   /var/www/blog;
        index  index.html;
    }
    location /images/ {
        root   /var/www/blog;
    }
}

在这个server块配置中,当用户访问http://blog.example.com时,Nginx会从/var/www/blog目录下查找index.html文件作为响应。而当用户访问以http://blog.example.com/images/开头的URL路径时,Nginx会从/var/www/blog/images/目录下查找对应的文件进行响应。

server {
    listen       80;
    server_name  api.example.com;
    location / {
        proxy_pass http://backend-api-server:8080;
        proxy_set_header Host $host;
        proxy_set_header X - Real - IP $remote_ip;
    }
}

此示例展示了server块作为反向代理的功能。当用户访问http://api.example.com相关的请求时,Nginx会将请求转发到运行在backend - api - server:8080的后端API服务器上。同时,通过proxy_set_header指令设置了一些请求头信息,使得后端服务器能够正确获取请求的来源信息。

 四、Nginx启动

我们先就默认配置启动,双击一下,然后如果看到画面一闪而过,代表启动成功

我们直接浏览器输入localhost 就可以进入,这个画面其实在前面说过,就是下面第二张图中html目录下面的index.html(默认配置就是访问的这个界面),如果启动失败那应该会访问50x.html。

出现下面界面代表启动成功

五、Nginx配置实战

1、Nginx配置实例-反向代理

将请求转发到后端服务器

实例一

一般我们这里是用的打包后的前端项目,然后指定到后端sprinboot项目(自带tomcat)

反向代理配置
        修改host文件(地址直接参照以下图片)

        加上一行:将www.123.com映射到192.168.179.137(ip是Linux地址)

192.168.179.137 www.123.com

因为我这里是window是所以这里就不用了

启动ngnix:

start nginx

停止:

nginx.exe -s quit

总结:

因为我们这里是测试的反向代理,我这里本地启动了一个springbooot服务、localhost:8080,我在浏览器输入这个即可进入到一个界面,然后我用ngnix做反向代理,我输入的是localhost:80即可进入这个界面

实例二

这里就描述一下:

(1)准备两个tomcat服务器,一个8080端口,一个8081端口

~代表正则表达式的形式,有edu就8080,有vod就8081


       

在 Nginx 中,location 指令用于配置 URI 路径匹配规则。location ~/edu/location /edu/ 看似相似,但它们有一些重要的区别,主要体现在匹配方式上。

1. location /edu/

  • 这种形式的 location前缀匹配(prefix matching),意味着它会匹配以 /edu/ 开头的所有 URI。
  • 它会匹配任何包含 /edu/ 前缀的路径,无论后面接什么内容,都会被这条规则捕获。
  • 这种匹配规则是 最常见的,适用于常见的路径匹配需求。

例如,以下路径会匹配 location /edu/

  • /edu/
  • /edu/index.html
  • /edu/abc/xyz
location /edu/ { # 处理以 /edu/ 开头的路径 }

2. location ~/edu/

  • 这种形式的 location正则表达式匹配(regex matching),它会使用正则表达式对路径进行匹配。
  • ~/ 前缀后跟着的 /edu/ 是一个正则表达式,用来匹配符合该表达式的路径。
  • 注意,正则表达式匹配的顺序是 较晚 的,所以如果有其他的 location 路径匹配规则符合该路径,它将不会是优先匹配的规则,只有在没有找到前缀匹配时,正则表达式匹配才会被应用。

例如,以下路径会匹配 location ~/edu/

  • /edu/
  • /path/to/edu/
  • /abc/edu/xyz/
  • /course/edu/class/
location ~/edu/ { # 处理通过正则表达式匹配的路径,大小写敏感、区分大小写 }

主要区别

  • 前缀匹配 (/edu/): 直接根据路径的前缀来匹配,不考虑路径中的其他部分。
  • 正则匹配 (~/edu/): 使用正则表达式匹配,允许更复杂的匹配逻辑,例如大小写不敏感、包含多个字符等。

匹配顺序

在 Nginx 中,location 的匹配是按照以下顺序进行的:

  1. 精确匹配:匹配最准确的路径。
  2. 前缀匹配:从长到短的匹配(最长的前缀优先)。
  3. 正则匹配:最后使用正则表达式进行匹配。

因此,正则表达式匹配会在前缀匹配之后进行。为了确保正确的匹配顺序,通常推荐正则匹配规则使用 ~(大小写敏感)或 ~*(大小写不敏感),并且它们通常放在后面。

2、Nginx负载均衡

大概是实现效果就是每次请求80端口刷新,轮询请求一个服务器,可能是8080,可能是8081
    
1、轮询(默认)
        每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

upstream myserver{
        server 192.168.77.130:8080;
        server 192.168.77.130:8081;
}


 2、weight
        weight 代表权重默认为 1,权重越高被分配的客户端越多 。

        指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:

upstream myserver{
          server 192.168.77.130:8080 weight=10;
          server 192.168.77.130:8081 weight=5;
}


3、 ip_hash
        每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。也就是说,客户第一次访问这个服务器,之后访问的都是这个服务器。

upstream myserver{
ip_hash;
          server 192.168.77.130:8080 ;
          server 192.168.77.130:8081 ;
}


4、fair
        按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myserver{
             server 192.168.77.130:8080;
             server 192.168.77.130:8081;
             fair;
}


3、Nginx动静分离


        实现效果:不同资源访问不同服务器。

一般在linux系统中,这个root就是根目录,所以可以直接用data

如果是在windows系统中,之前有一个默认示例,就是html中的静态页面,root应该就是从nginx的目录下开始

准备工作
        在/data里面准备两个文件夹/image和/www,里面分别放入01.jpg和a.html来模拟静态资源。

Niginx具体配置
        autoindex on:目的是为了在访问 /image 时,能够显示目录里面的内容,当然这里也可以通过expire设置缓存过期时间 。

 或者直接

http://192.168.17.129/image/01.jpg

如果是访问http://192.168.17.129/www/没有autoindex on,所以是404

但是可以http://192.168.17.129/www/a.html。可以看到页面

个人理解:

前面请求服务器就是动态请求,这里就是访问静态页面。

注意还是有点区别:

1、比如访问服务器的时候localtion后面的路径代表可能要走不同的端口

2、如果是访问静态资源,这里可能是代表静态资源的文件夹

3、还有就是前端打包的时候,动静结合。

六、项目打包实战

1、测试

start nginx
tasklist | findstr nginx

 重新加载配置启动 

nginx -s reload

检查配置是否有效:

nginx -t

 关闭ngnix

nginx -s quit
tasklist | findstr nginx

不返回结果,代表关闭 

     

proxy_pass http://localhost:9100/;

注意路径后面有一个“/" 

 和前面的反向代理一样。这里可以直接访问到后端服务器,但是我们一般用ngnix部署前端

2、若依打包部署

不能这样写:

location / {
    root   html/dist;
    proxy_pass http://localhost:9100/;
    index  index.html index.htm;
}

即使你配置了 root html/dist; 来提供静态文件,proxy_pass 会将请求转发到 http://localhost:9100,而不是直接访问静态文件。

通常,前端和后端请求会被分开处理,前端静态文件由 Nginx 提供,而后端 API 请求通过 proxy_pass 进行代理。你可以通过不同的 location 块来分别处理静态文件和后端 API 请求。

假设你的前端文件位于 html/dist 目录,而后端服务运行在 http://localhost:9100,你可以按以下方式配置:

# 提供静态文件
location / {
    root   html/dist;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;  # 如果静态文件没有找到,重定向到 index.html
}

# 代理后端 API 请求
location /gateway/slhy-mgr-ui/ {
    proxy_pass http://localhost:9100;
    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;
}

路径后面有一个”/",这里漏了

不过一般vue.config.js,后面没有/

若依前端挂Nginx、打包部署运行!!!!-CSDN博客

在 Nginx 中,当使用 proxy_pass 指定目标地址时,URL 中是否包含尾随的 / 会影响路径的重写行为。这是一个容易引起混淆但非常重要的细节。 

1. 不加 / 的行为:

proxy_pass http://192.168.1.30:8085;
效果:
  • Nginx 会将客户端请求路径的整个路径部分追加到目标地址。
  • 原始请求路径不会被剪裁,而是直接拼接到 proxy_pass 的目标地址。
示例:

假设客户端请求

GET /gateway/slhy-mgr-ui/test

在上述配置下,转发到后端的 URL 将会是:

http://192.168.1.30:8085/gateway/slhy-mgr-ui/test
可能的问题:

如果后端服务期望 /gateway/slhy-mgr-ui/ 前缀已经被去掉(例如后端只处理 /test),这种配置会导致路径不匹配,返回 404 或其他错误。

2. 加 / 的行为:

proxy_pass http://192.168.1.30:8085/;
效果:
  • Nginx 会将客户端请求路径中与 location 配置匹配的部分剪裁掉,然后将剩余路径追加到目标地址。
  • proxy_pass 的目标地址中的尾随 / 告诉 Nginx:匹配的路径部分需要被替换,而不是直接追加
示例:

假设 location 配置如下:

location /gateway/slhy-mgr-ui/ {
    proxy_pass http://192.168.1.30:8085/;
}

客户端请求:

GET /gateway/slhy-mgr-ui/test

转发到后端的 URL 将会是:

http://192.168.1.30:8085/test
为什么有这个变化?
  • Nginx 根据 location 的路径部分 /gateway/slhy-mgr-ui/ 匹配到请求,然后将匹配部分剪裁掉。
  • 剩余的 /test 被追加到 proxy_pass 的目标地址。

本文地址:https://www.vps345.com/11245.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP docker 容器 运维 java-rabbitmq java 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 centos python linux 机器学习 服务器 深度学习 人工智能 Deepseek Deepseek-R1 大模型 私有化部署 推理模型 游戏 云计算 javascript 前端 chrome edge 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 数据库 oracle 关系型 安全 分布式 神经网络 计算机视觉 卷积神经网络 deepseek DeepSeek-R1 API接口 c++ ddos android 网络安全 web安全 DNS arm开发 架构 redis ubuntu YOLO conda pytorch vscode yolov5 ssh harmonyos 华为 tcp/ip 网络 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 物联网 RTSP xop RTP RTSPServer 推流 视频 数据库系统 vue.js spring boot nginx github git 指令 php 开发语言 npm 语言模型 进程 操作系统 进程控制 Ubuntu kubernetes 学习方法 经验分享 程序人生 c语言 gcc centos 7 Flask FastAPI Waitress Gunicorn uWSGI Uvicorn Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 网络协议 ip协议 Ollama 模型联网 API CherryStudio CH340 单片机 嵌入式硬件 串口驱动 CH341 uart 485 macos pycharm ide django 英语 oracle fusion oracle中间件 Qwen2.5-coder 离线部署 unix springsecurity6 oauth2 授权服务器 前后端分离 自动化 MacMini Mac 迷你主机 mini Apple audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 mcp ROS 自动驾驶 FTP服务器 windows 网络结构图 https ai nlp 远程桌面 笔记 C 环境变量 进程地址空间 outlook 错误代码2603 无网络连接 2603 游戏引擎 学习 数据分析 node.js 负载均衡 prometheus grafana 云原生 智能路由器 外网访问 内网穿透 端口映射 腾讯云 opengl flutter Google pay Apple pay Linux xrdp 远程连接 adobe 环境迁移 udp fstab apache YOLOv8 NPU Atlas800 A300I pro asi_bench ACL 流量控制 基本ACL 规则配置 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 阿里云 mysql adb llama 算法 opencv 自然语言处理 dell服务器 服务器配置 生物信息学 ArkUI 鸿蒙系统 ArkTS gnu stm32 deepseek-r1 大模型本地部署 react next.js 部署 部署next.js 计算机外设 bug agi AIGC rpc tomcat rust腐蚀 virtualenv 开发环境 交换机 硬件 设备 GPU PCI-Express mysql离线安装 ubuntu22.04 mysql8.0 react.js 前端面试题 持续部署 gitee Ubuntu20.04 GLIBC 2.35 list 数据结构 华为云 华为od 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 雨云 NPS IMM selenium typescript 鸿蒙 USB转串口 Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 ansible MCP vnc 后端 live555 rtsp rtp 自定义客户端 SAS http 目标检测 面试 fastapi mcp-proxy mcp-inspector fastapi-mcp agent sse dify 知识库 本地化部署 iftop 网络流量监控 spring gitlab unity intellij-idea C语言 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 ffmpeg 音视频 视频编解码 pip axure 富文本编辑器 ui rsyslog 快捷键 旋转屏幕 自动操作 flask eureka mcu ipython k8s dash json 正则表达式 jvm 虚拟机 debian PVE ip 计算机网络 spring cloud compose devops websocket gitea 人工智能生成内容 Dify 镜像源 交互 大数据 spark hive uni-app ollama 压力测试 大模型压力测试 EvalScope 虚拟现实 c# vue3 excel 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 程序 编程 内存 性能分析 科技 个人开发 银河麒麟 开源 milvus 实时音视频 实时互动 Alexnet centos-root /dev/mapper yum clean all df -h / du -sh 性能优化 阻塞队列 生产者消费者模型 服务器崩坏原因 grub 版本升级 扩容 cron crontab日志 visualstudio AI编程 rocketmq VMware vite UEFI Legacy MBR GPT U盘安装操作系统 AutoDL qt arm 教程 环境搭建 Java Maven gpu算力 嵌入式 电脑 NVML nvidia-smi 统信 国产操作系统 虚拟机安装 matplotlib fonts-noto-cjk ue4 着色器 ue5 虚幻 虚拟局域网 burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 jupyter DeepSeek Chatbox maxkb ARG 孤岛惊魂4 qps 高并发 webdav 反向代理 pygame 网易邮箱大师 运维开发 eclipse 虚拟显示器 远程控制 系统安全 C++ python2 ubuntu24.04 grep 集成学习 集成测试 jellyfin nas kylin 建站 华为认证 策略模式 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 asp.net大文件上传 asp.net大文件上传下载 asp.net大文件上传源码 ASP.NET断点续传 AI-native gpt ssrf 失效的访问控制 并查集 leetcode 本地环回 bind asm JDK LInux Windows Ubuntu 22.04 MySql 算家云 算力租赁 安装教程 知识图谱 LLM 大模型教程 AI大模型 串口服务器 microsoft Linux 维护模式 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 ubuntu20.04 开机黑屏 1024程序员节 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 WSL2 IP 地址 命名管道 客户端与服务端通信 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 ssl 链表 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 cursor 数据挖掘 爬虫 多线程服务器 Linux网络编程 FTP 服务器 ubuntu 18.04 ssh漏洞 ssh9.9p2 CVE-2025-23419 rdp 远程服务 信息与通信 Qualcomm WoS AI Python QNN AppBuilder 职场和发展 CPU 使用率 系统监控工具 linux 命令 C# MQTTS 双向认证 emqx 多层架构 解耦 远程工作 镜像下载 freebsd 前端框架 微信 微信分享 Image wxopensdk golang jenkins 无人机 机器人 sql kafka 大模型技术 本地部署大模型 elasticsearch 高级IO epoll 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 EtherCAT转Modbus EtherCAT转485网关 ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口网关 ECT转Modbus串口服务器 firewall 媒体 HarmonyOS Next svn perf RAID RAID技术 磁盘 存储 maven 目标跟踪 OpenVINO 推理应用 课程设计 rust stm32项目 vim 缓存 glibc 硬件工程 区块链 行情服务器 股票交易 速度慢 切换 股票量化接口 股票API接口 windows 服务器安装 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 bash ros ros1 Noetic 20.04 apt 安装 QT 5.12.12 QT开发环境 Ubuntu18.04 cuda postman 测试工具 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 zabbix mariadb 计算生物学 生物信息 基因组 vue pdf 编辑器 进程优先级 调度队列 进程切换 王者荣耀 python3.11 pyside6 界面 微服务 vmware 卡死 管道 匿名管道 国产数据库 瀚高数据库 数据迁移 下载安装 protobuf 序列化和反序列化 安装 ragflow 桥接模式 windows虚拟机 虚拟机联网 大模型入门 yum docker-compose docker compose Hive环境搭建 hive3环境 Hive远程模式 postgresql VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 n8n 工作流 jar CNNs 图像分类 llm 程序员 samba 程序员创富 vSphere vCenter 软件定义数据中心 sddc linux驱动开发 p2p numpy MQTT 消息队列 jmeter 软件测试 chatgpt oneapi 大模型微调 防火墙 端口号 开放端口 访问列表 VMware安装mocOS macOS系统安装 cnn kotlin android studio iphone gateway Clion Nova ResharperC++引擎 Centos7 远程开发 rag 大模型部署 pillow 磁盘挂载 新盘添加 partedUtil ci/cd 代码规范 openvpn server openvpn配置教程 centos安装openvpn shell springboot IPMI VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 ecmascript nextjs reactjs termux Linux PID vr 驱动开发 安卓模拟器 mac web3.py 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 vu大文件秒传跨域报错cors PX4 wsl ip命令 新增网卡 新增IP 启动网卡 多线程 jdk Ubuntu22.04 虚拟化 开发人员主页 微信小程序 odoo 服务器动作 Server action hadoop big data burp suite 抓包 WLAN 直播推流 cpu 实时 使用 IM即时通讯 QQ 企业微信 剪切板对通 HTML FORMAT diskgenius 移动端开发 电子信息 通信工程 毕业 Mermaid 可视化图表 自动化生成 remote-ssh aws Hyper-V WinRM TrustedHosts 升级 CVE-2024-7347 漏洞 Agent CrewAI shell脚本免交互 expect linux免交互 KylinV10 麒麟操作系统 Vmware 安卓 监控k8s集群 集群内prometheus 命令 MobaXterm 文件传输 信号处理 tcpdump oceanbase 传统数据库升级 银行 dubbo transformer zip unzip 聚类 灵办AI IIS .net core Hosting Bundle .NET Framework vs2022 话题通信 服务通信 matlab xcode nohup 异步执行 DevEco Studio 嵌入式实习 powerpoint 硅基流动 ChatBox arkUI arkTs open webui 云电竞 云电脑 todesk TCP WebServer 图像处理 Maxkb RAG技术 本地知识库 工具分享 SRS 流媒体 直播 智能手机 HP Anyware 一切皆文件 es6 qt6.3 g726 openjdk iot zotero WebDAV 同步失败 代理模式 iTerm2 智能体开发 私有化 本地部署 NFS java-ee notepad nvm localhost 券商 股票交易接口api 类型 特点 kali 共享文件夹 7z ollama api ollama外网访问 大模型应用 linuxdeployqt 打包部署程序 appimagetool clickhouse rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK visual studio code 安全威胁分析 智慧农业 开源鸿蒙 团队开发 sublime text lighttpd安装 Ubuntu配置 Windows安装 性能测试 服务器优化 MCP server C/S 思科 JAVA ESP32 浪潮信息 AI服务器 ruoyi frp rustdesk LDAP Cursor 硬件架构 系统架构 IIS服务器 IIS性能 日志监控 intellij idea 读写锁 智能合约 哈希算法 高效I/O GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 显卡驱动持久化 GPU持久化 物联网开发 SSH 密钥生成 SSH 公钥 私钥 生成 实验 photoshop 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 软件需求 Mac内存不够用怎么办 umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt sqlserver 源码 毕业设计 ragflow 源码启动 可信计算技术 NAS 海康 论文阅读 混合开发 环境安装 webrtc 僵尸进程 kind .net vm Carla 智能驾驶 其他 VMware安装Ubuntu Ubuntu安装k8s bot Docker webgl 智能电视 nacos 豆瓣 追剧助手 迅雷 DevOps 软件交付 数据驱动 应用场景 数据安全 密码学 deepseak 文心一言 豆包 KIMI 腾讯元宝 游戏程序 ios r语言 html CPU 主板 电源 网卡 互信 宝塔面板无法访问 export env 变量 flash-attention 报错 冯诺依曼体系 fork wait waitpid exit Docker Desktop 昇腾 大模型训练/推理 推理问题 mindie autoware ros2 热榜 工具 大语言模型 LLMs WSL resolv.conf miniapp 真机调试 调试 debug 断点 网络API请求调试方法 进程信号 DrissionPage harmonyOS面试题 nohup后台启动 redhat vmamba Linux24.04 deepin echarts 联网 easyconnect 代理 ShapeFile GeoJSON Nginx 离线部署dify Docker Hub docker pull daemon.json su sudo sudo原理 su切换 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 html5 firefox TrueLicense Netty WebUI DeepSeek V3 langchain deep learning GameFramework HybridCLR Unity编辑器扩展 自动化工具 回显服务器 UDP的API使用 权限 产品经理 .netcore 数据集 k8s部署 MySQL8.0 高可用集群(1主2从) java-rocketmq pyautogui 安全漏洞 信息安全 SSH Xterminal linux内核 网络爬虫 Kali Linux 黑客 渗透测试 信息收集 visual studio RustDesk自建服务器 rustdesk服务器 docker rustdesk Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 yolov8 edge浏览器 onlyoffice 视频监控 网站 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 远程过程调用 Windows环境 WebRTC iperf3 带宽测试 华为OD 华为OD机试真题 可以组成网络的服务器 考试 Trae叒更新了? tcp zerotier openwrt sysctl.conf vm.nr_hugepages lvm 磁盘分区 数据可视化 创意 社区 MS Materials db VMware创建虚拟机 源码剖析 rtsp实现步骤 流媒体开发 中间件 iis MacOS录屏软件 Docker Compose Kubernetes k8s集群资源管理 云原生开发 银河麒麟操作系统 国产化 rancher 软件卸载 系统清理 监控k8s 监控kubernetes AnythingLLM AnythingLLM安装 OpenCore c bcompare Beyond Compare Redis Desktop rabbitmq React Next.js 开源框架 DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 Mac软件 macbook WebVM efficientVIT YOLOv8替换主干网络 TOLOv8 ufw linux上传下载 kubeless camera Arduino webpack 大屏端 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 统信UOS 麒麟 bonding 链路聚合 宝塔 压测 ECS 中兴光猫 换光猫 网络桥接 自己换光猫 GCC aarch64 编译安装 HPC 数码 联机 僵尸毁灭工程 游戏联机 开服 软件开发 信任链 软件工程 软件构建 ROS2 VSCode 常用命令 文本命令 目录命令 图文教程 VMware虚拟机 macOS系统安装教程 macOS最新版 虚拟机安装macOS Sequoia database fpga开发 docker run 数据卷挂载 交互模式 kvm 域名服务 DHCP 符号链接 配置 锁屏不生效 沙盒 需求分析 提示词 go iventoy VmWare OpenEuler scikit-learn 框架搭建 ESXi gpt-3 政务 分布式系统 监控运维 Prometheus Grafana moveit 机器人运动 Windsurf 磁盘监控 ftp服务 文件上传 日志分析 系统取证 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 selete openEuler v10 软件 kernel netty linux环境变量 Trae IDE AI 原生集成开发环境 Trae AI file server http server web server 主从复制 Invalid Host allowedHosts import save load 迁移镜像 网络用户购物行为分析可视化平台 大数据毕业设计 Kylin-Server 服务器安装 threejs 3D 基础环境 Linux Vim Cline gradle 实战案例 openstack Xen KVM css css3 nftables 拓扑图 5G rc.local 开机自启 systemd 智能体 autogen openai coze ECT转Modbus协议 EtherCAT转485协议 ECT转Modbus网关 P2P HDLC MAVROS 四旋翼无人机 mongodb 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 笔灵AI AI工具 Dell R750XS 毕设 ICMP 服务器扩容没有扩容成功 云服务 GRE 内网渗透 靶机渗透 温湿度数据上传到服务器 Arduino HTTP ocr tar 矩阵 ECS服务器 VPN wireguard 蓝桥杯C++组 蓝桥杯 深度求索 私域 个人博客 web etcd RBAC windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 seatunnel 腾讯云大模型知识引擎 KingBase 3d 数学建模 K8S k8s管理系统 服务器部署 本地拉取打包 计算机科学与技术 cudnn anaconda Termux Samba Reactor 设计模式 express web3 区块链项目 elk kylin v10 麒麟 v10 googlecloud RDP 隐藏文件 H3C WSL2 上安装 Ubuntu 具身智能 Isaac Sim 虚拟仿真 HCIE 数通 Web应用服务器 HiCar CarLife+ CarPlay QT RK3588 arcgis 教育电商 sublime text3 Claude Desktop Claude MCP Windows Cli MCP csrf 大数据平台 prometheus数据采集 prometheus数据模型 prometheus特点 信息可视化 网页设计 WINCC linux 命令 sed 命令 Kali 渗透 initramfs Linux内核 Grub hibernate ELF加载 alias unalias 别名 客户端 kamailio sip VoIP 开机自启动 WireGuard 异地组网 ukui 麒麟kylinos openeuler 服务器ssl异常解决 mybatis Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer 宝塔面板 同步 备份 prompt AI提示词优化 webstorm cmake 动静态库 强制清理 强制删除 mac废纸篓 yum源切换 更换国内yum源 华为证书 HarmonyOS认证 华为证书考试 springcloud fpga nvidia 考研 在线office 蓝耘科技 元生代平台工作流 ComfyUI CosyVoice 京东云 飞牛nas fnos 网络穿透 云服务器 命令行 基础入门 功能测试 自动化测试 VPS Nuxt.js dns 健康医疗 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 Ark-TS语言 OpenManus 低代码 推荐算法 servlet 小智 RTMP 应用层 OD机试真题 服务器能耗统计 okhttp CORS 跨域 xml DeepSeek r1 Open WebUI MVS 海康威视相机 mamba 空间 查错 计算机 单一职责原则 mq 智能音箱 智能家居 cmos IPMITOOL BMC 硬件管理 opcua opcda KEPServer安装 计算机系统 网络编程 重启 排查 系统重启 日志 原因 相机 飞牛NAS 飞牛OS MacBook Pro 实时内核 程序化交易 量化交易 高频交易 办公自动化 pdf教程 邮件APP 免费软件 CentOS 双系统 进程间通信 ollama下载加速 xpath定位元素 移动云 CDN 监控 自动化运维 Ubuntu Server Ubuntu 22.04.5 安防软件 Ubuntu共享文件夹 共享目录 Linux共享文件夹 设置代理 实用教程 EMQX 通信协议 信号 内核 显示器 curl wget Reactor反应堆 自动化任务管理 云桌面 微软 AD域控 证书服务器 概率论 系统开发 binder 车载系统 framework 源码环境 浏览器自动化 win11 无法解析服务器的名称或地址 分布式账本 共识算法 armbian u-boot 安装MySQL iNode Macos 内网环境 视觉检测 LVM lvresize 磁盘扩容 pvcreate Pyppeteer Playwright minicom 串口调试工具 fd 文件描述符 支持向量机 流式接口 多产物 数据采集 Crawlee api ftp log4j wps cd 目录切换 ux 鲲鹏 npu vscode1.86 1.86版本 ssh远程连接 minio 文件存储服务器组件 镜像 SSE 网络文件系统 LLM Web APP Streamlit Xinference RAGFlow rpa AD域 网工 opensearch helm CentOS Stream string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap systemctl composer apt 国内源 SSL证书 perl docker命令大全 uv 代码调试 ipdb DocFlow 聊天服务器 套接字 Socket 文件系统 路径解析 shard 动态规划 Attention NLP Linux的权限 lio-sam SLAM 群晖 文件分享 桌面环境 雨云服务器 MQTT协议 消息服务器 代码 token sas stable diffusion Vmamba 远程看看 远程协助 玩游戏 服务器部署ai模型 sqlite3 机柜 1U 2U 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 gaussdb Bug解决 Qt platform OpenCV 华为机试 esp32 蓝牙 相差8小时 UTC 时间 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 大模型面经 大模型学习 chatbox 微信公众平台 ebpf uprobe 输入法 搜索引擎 全文检索 图搜索算法 三级等保 服务器审计日志备份 laravel rime 云耀服务器 IP配置 netplan 流水线 脚本式流水线 向日葵 图形化界面 beautifulsoup PPI String Cytoscape CytoHubba Linux的基础指令 linux安装配置 less hosts hosts文件管理工具 开源软件 gunicorn 大文件秒传跨域报错cors 充电桩平台 充电桩开源平台 EMUI 回退 降级 影刀 USB网络共享 java-zookeeper Unity Dedicated Server Host Client 无头主机 client-go k8s二次开发 3GPP 卫星通信 强化学习 windows日志 单元测试 树莓派 VNC RAGFLOW thingsboard 自动化编程 AI作画 HistoryServer Spark YARN jobhistory make命令 makefile文件 iDRAC R720xd 浏览器开发 AI浏览器 技术 CUPS 打印机 Qt5 mac设置host 换源 Debian etl 嵌入式系统开发 CLion c/c++ 串口 免密 登录 公钥 私钥 Claude 模拟实现 单例模式 wireshark 显示过滤器 Wireshark安装 用户管理 copilot rtc FunASR ASR telnet 远程登录 wsl2 状态管理的 UDP 服务器 Arduino RTOS 环境配置 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 AimRT 跨域请求 加解密 Yakit yaklang NVM Node Yarn PM2 打不开xxx软件 无法检查其是否包含恶意软件 mvc Wi-Fi 我的世界 我的世界联机 k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm SenseVoice top Linux top top命令详解 top命令重点 top常用参数 序列化反序列化 docker desktop docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 分析解读 word g++ g++13 cfssl deepseek-v3 ktransformers EVE-NG 执法记录仪 智能安全帽 smarteye Linux权限 权限命令 特殊权限 jetty undertow massa sui aptos sei UOS 统信操作系统 HarmonyOS Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 网卡的名称修改 eth0 ens33 DIFY 深度优先 图论 并集查找 换根法 树上倍增 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos 语音识别 TRAE ssh远程登录 nac 802.1 portal llama3 Chatglm 开源大模型 iBMC UltraISO ping++ 宠物 免费学习 宠物领养 宠物平台 小艺 Pura X Cookie IO ubuntu安装 linux入门小白 GPU训练 yaml Ultralytics 可视化 测试用例 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 AI代码编辑器 Kylin OS 银河麒麟服务器操作系统 系统激活 uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 视频平台 录像 视频转发 视频流 显卡驱动 算力 授时服务 北斗授时 键盘 金仓数据库 2025 征文 数据库平替用金仓 金仓数据库概述 金仓数据库的产品优化提案 playbook 剧本 隐藏目录 管理器 通配符 X11 Xming AI写作 代理服务器 博客 openssl 金融 社交电子 工业4.0 DBeaver 数据仓库 kerberos 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 IPv4 子网掩码 公网IP 私有IP Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 keepalived 产测工具框架 IMX6ULL 管理框架 junit 远程 执行 sshpass 操作 SEO xshell termius iterm2 负载测试 mysql安装报错 windows拒绝安装 element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 sdkman 磁盘清理 MAC 桌面快捷方式 跨平台 底层实现 直流充电桩 充电桩 微信开放平台 微信公众号配置 ArcTS ArcUI GridItem 7-zip pyicu springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 js 弹性计算 裸金属服务器 弹性裸金属服务器 源代码管理 Webserver 异步 unity3d retry 重试机制 开发 conda配置 conda镜像源 Github加速 Mac上Github加速 Chrome浏览器插件 SWAT 配置文件 服务管理 网络共享 YOLOv12 版本 x64 SIGSEGV xmm0 zookeeper PyQt PySide6 Web服务器 多线程下载工具 PYTHON mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 trae 即时通信 NIO 迁移指南 micropython mqtt OpenHarmony nuxt3 飞腾处理器 弹性服务器 ubuntu24.04.1 vasp安装 生活 边缘计算 Ardupilot 自学笔记 小米 澎湃OS Android 大版本升 升级Ubuntu系统 多进程 Node-Red 编程工具 流编程 图片增强 增强数据 ArkTs code-server mosquitto firewalld 系统 黑苹果 小游戏 五子棋 Office 安全架构 网络攻击模型 软链接 硬链接 TCP服务器 qt项目 qt项目实战 qt教程 交叉编译 国标28181 监控接入 语音广播 流程 SIP SDP 银河麒麟高级服务器 外接硬盘 Kylin UOS1070e 代码托管服务 finebi 导航栏 AISphereButler ruby anythingllm open-webui docker国内镜像 Linux环境 wpf easyui 运维监控 W5500 OLED u8g2 chfs ubuntu 16.04 regedit 开机启动 ShenTong 做raid 装系统 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 音乐服务器 Navidrome 音流 embedding 线程 钉钉 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 分子对接 autodock mgltools PDB PubChem Docker快速入门 火绒安全 uniapp pppoe radius 恒源云 抓包工具 autodl 卸载 列表 can 线程池 玩机技巧 软件分享 软件图标 致远OA OA服务器 服务器磁盘扩容 实时云渲染 云渲染 3D推流 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 网络原理 pyscenic 生信教程 免费域名 域名解析 qt5 客户端开发 android-studio 动态库 GCC编译器 -fPIC -shared 顽固图标 启动台 创业创新 数据库管理 hdc XCC Lenovo 繁忙 服务器繁忙 解决办法 替代网站 汇总推荐 AI推理 bat Echarts图表 折线图 柱状图 异步动态数据 鸿蒙开发 可视化效果 dba 端口测试 crosstool-ng wsgiref Web 服务器网关接口 HarmonyOS NEXT 原生鸿蒙 nfs Masshunter 质谱采集分析软件 使用教程 科研软件 SSL 域名 skynet csrutil mac恢复模式进入方法 恢复模式 OpenManage 终端 GIS 遥感 WebGIS 配置原理 SSH 服务 SSH Server OpenSSH Server lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 ai工具 机架式服务器 1U工控机 国产工控机 Jellyfin ldap LORA Alist rclone mount 挂载 网盘 mapreduce qemu libvirt Xshell EasyConnect pxe h.264 GeneCards OMIM TTD 黑客技术 DenseNet 本地部署AI大模型 URL pyqt MI300x 大模型推理 电视剧收视率分析与可视化平台 open Euler dde 自定义登录信息展示 motd 美化登录 可用性测试 cpp-httplib SPI IPv4/IPv6双栈 双栈技术 网路规划设计 ensp综合实验 IPv4过渡IPv6 IPv4与IPv6 服务器主板 AI芯片 Linux的基础开发工具 游戏服务器 TrinityCore 魔兽世界 xfce virtualbox tensorflow logstash 文件共享 ubuntu24 vivado24 崖山数据库 YashanDB 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 NFC 近场通讯 智能门锁 chromium dpi 脚本 能力提升 面试宝典 IT信息化 fiddler RAG 检索增强生成 文档解析 大模型垂直应用 商用密码产品体系 设备树 #影刀RPA# gru vllm saltstack Helm k8s集群 无桌面 欧拉系统 risc-v 医疗APP开发 app开发 图形渲染 d3d12 harmonyosnext 源代码 VGG网络 卷积层 池化层 实习 swoole 模拟器 框架 MDK 嵌入式开发工具 论文笔记 yashandb 联想开天P90Z装win10 AList fnOS bootstrap archlinux kde plasma 医院门诊管理系统 宕机切换 服务器宕机 Zoertier 内网组网 Bandizip Mac解压 Mac压缩 压缩菜单 cpolar accept Qwen3 qwen3 32b 增强现实 沉浸式体验 技术实现 案例分析 AR 嵌入式Linux IPC 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? GoogLeNet 线性代数 电商平台 scapy 终端工具 远程工具 ecm bpm safari DOIT 四博智联 历史版本 下载 工厂方法模式 NAT转发 NAT Server llamafactory 微调 Qwen 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 虚幻引擎 多端开发 智慧分发 应用生态 鸿蒙OS idm 百度云 Typore vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 System V共享内存 进程通信 powerbi 矩池云 数据下载 数据传输 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 免费 技能大赛 信创 信创终端 中科方德 springboot容器部署 springboot容器化部署 微服务容器化负载均衡配置 微服务容器多节点部署 微服务多节点部署配置负载均衡 裸机装机 linux磁盘分区 裸机安装linux 裸机安装ubuntu 裸机安装kali 裸机 XFS xfs文件系统损坏 I_O error Python基础 Python教程 Python技巧 es linux子系统 忘记密码 性能调优 安全代理 web开发 dity make 用户缓冲区 eNSP 网络规划 VLAN 企业网络 支付 微信支付 开放平台 佛山戴尔服务器维修 佛山三水服务器维修 网页服务器 web服务器 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 对比 meld DiffMerge c/s Charles ajax 定义 核心特点 优缺点 适用场景 netlink libnl3 cocoapods 匿名FTP 邮件传输代理 SSL支持 chroot监狱技术 #STC8 #STM32 Spring Security 技术共享 node UDP searxng glm4 抗锯齿 SysBench 基准测试 服务器时间 GRUB引导 Linux技巧 cocos2d 3dcoat miniconda Minecraft gitee go MNN pycharm安装 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 互联网医院 llama.cpp DeepSeek行业应用 Heroku 网站部署 Dell HPE 联想 浪潮 swift trea idea lb 协议 思科模拟器 Cisco 聊天室 ceph 可执行程序 VR手套 数据手套 动捕手套 动捕数据手套 rnn Linux find grep muduo PTrade QMT 量化股票 飞牛 计算机学习路线 编程语言选择 容器技术 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 Obsidian Dataview jina av1 电视盒子 机顶盒ROM 魔百盒刷机 流程图 mermaid sonoma 自动更新 显示管理器 lightdm gdm neo4j 数据库开发 AD 域管理 vscode 1.86 网站搭建 serv00 TCP协议 达梦 DM8 服务网格 istio banner 星河版 软件商店 livecd systemtools Logstash 日志采集 vsxsrv chrome devtools chromedriver rsync pthread 端口聚合 windows11 openvino postgres Dify重启后重新初始化 HTTP 服务器控制 ESP32 DeepSeek 合成模型 扩散模型 图像生成 备选 调用 示例 稳定性 看门狗 NTP服务器 毕昇JDK 游戏机 SecureCRT image comfyui comfyui教程 vpn NLP模型 半虚拟化 硬件虚拟化 Hypervisor SVN Server tortoise svn solidworks安装 内存管理 SoC 服务器管理 配置教程 网站管理 Radius fast sqlite pgpool 端口 查看 ss RagFlow 业界资讯 workflow 模拟退火算法 田俊楠 post.io 企业邮箱 搭建邮箱 学习路线 根服务器 MinIO 三次握手 devmem OS IMX317 MIPI H265 VCU 内网服务器 内网代理 内网通信 软考设计师 中级设计师 SQL 软件设计师 规格说明书 手机 飞书 bigdata 解决方案 ranger MySQL8.0 语法 AzureDataStudio lua Multi-Agent mcp服务器 client close 移动魔百盒 Headless Linux Python 视频爬取教程 Python 视频爬取 Python 视频教程 蜂窝网络 频率复用 射频单元 无线协议接口RAN 主同步信号PSS 机械臂 Qt QModbus 僵尸世界大战 游戏服务器搭建 MLLMs VLM gpt-4v docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 flink docker部署Python mybase 大大通 第三代半导体 碳化硅 mcp协议 go-zero 极限编程 deepseek r1 企业网络规划 华为eNSP Async注解 红黑树封装map和set SystemV paddle 项目部署到linux服务器 项目部署过程 超融合 react native 智能问答 向量数据库 Spring AI Milvus 网络库 知行EDI 电子数据交换 知行之桥 EDI 能源 navicat Modbus TCP LLaMA-Factory Sealos Ubuntu 24.04.1 轻量级服务器 whistle 制造 搭建个人相关服务器 Anolis nginx安装 linux插件下载 鸿蒙NEXT web环境 yum换源 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 LVS 阿里云ECS figma 多个客户端访问 IO多路复用 TCP相关API CPU架构 服务器cpu 设计规范 RK3568 架构与原理 GRANT REVOKE deekseek IDEA tailscale derp derper 中转 triton 模型分析 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 线程同步 线程互斥 条件变量 欧标 OCPP 问题解决 粘包问题 静态IP vmware tools 音乐库 sentinel Python学习 Python编程 proxy模式 烟花代码 烟花 元旦 midjourney 本地知识库部署 DeepSeek R1 模型 Apache Beam 批流统一 案例展示 数据分区 容错机制 NVIDIA 我的世界服务器搭建 Putty 花生壳 OpenSSH 干货分享 黑客工具 密码爆破 brew PostgreSQL15数据库 ISO镜像作为本地源 云计算面试题 bert docker search 流量运营 多路转接 事件驱动 烟雾检测 yolo检测 消防检测 风扇控制软件 Erlang OTP gen_server 热代码交换 事务语义 VM虚拟机 minecraft 项目部署 材料工程 AI员工 dns是什么 如何设置电脑dns dns应该如何设置 接口返回 xss hugo 模板 泛型编程 easyTier 组网 AI agent notepad++ dock 加速 LSTM 状态模式 漏洞报告生成 Qwen2.5-VL aac VS Code 物理地址 页表 虚拟地址 finalsheel UFW 游戏开发 hexo 集群管理 小智AI服务端 xiaozhi TTS seleium nosql 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 broadcom 轮播图 银河麒麟桌面操作系统 access blocked 破解 win服务器架设 windows server homeassistant OpenGL 查看显卡进程 fuser ArtTS IO模型 移动开发 查询数据库服务IP地址 SQL Server win向maOS迁移数据 ubantu 分布式训练 软负载 AI Agent 字节智能运维 MacOS sequoiaDB qtcreator 捆绑 链接 谷歌浏览器 youtube google gmail 子系统 deployment daemonset statefulset cronjob HAProxy ABAP 存储维护 NetApp存储 EMC存储 北亚数据恢复 oracle数据恢复 Web3 Telegram 李心怡 AWS authing 实时日志 logs 搜狗输入法 Ubuntu 24.04 搜狗输入法闪屏 Ubuntu中文输入法 ardunio BLE 代码复审 orbslam2 西门子PLC 通讯 能效分析 tidb 华为鸿蒙系统 ArkTS语言 Component 生命周期 条件渲染 Image图片组件 环境 非root macOS 零售 安装部署 milvus安装 容器化 Serverless vCenter服务器 ESXi主机 监控与管理 故障排除 日志记录 qwen2vl pythonai PlaywrightMCP 火山引擎 元服务 应用上架 命令模式 Unity插件 数字证书 签署证书 mujoco 动态域名 中文输入法 fabric caddy 输入系统 Metastore Catalog 带外管理 进程池实现 solr 4 - 分布式通信、分布式张量 服务器正确解析请求体 惠普服务器 惠普ML310e Gen8 惠普ML310e Gen8V2 wifi驱动 webview 计算虚拟化 弹性裸金属 切换root 超级终端 多任务操作 提高工作效率 端口开放 STL watchtower 接口优化 lrzsz 数字比特流 模拟信号 将二进制数据映射到模拟波形上 频谱资源 振幅频率相位 载波高频正弦波 nginx默认共享目录 华为昇腾910b3 GPUGEEK CAD瓦片化 栅格瓦片 矢量瓦片 Web可视化 DWG解析 金字塔模型 java毕业设计 微信小程序医院预约挂号 医院预约 医院预约挂号 小程序挂号 nano h.265 BCLinux 青少年编程 tar.gz tar.xz linux压缩 rtcp anonymous 腾讯云服务器 轻量应用服务器 linux系统入门 linux命令 RockyLinux isaacgym 集成 vue在线预览excel和编辑 vue2打开解析xls电子表格 浏览器新开页签或弹框内加载预览 文件url地址或接口二进制文档 解决网页打不开白屏报错问题 流量 lvs 站群 多IP 基本指令 风扇散热策略 曙光 海光 宁畅 中科可控 issue janus nmcli 网络配置 企业风控系统 互联网反欺诈 DDoS攻击 SQL注入攻击 恶意软件和病毒攻击 socket jdk11安装 jdk安装 openjdk11 openjdk11安装