Nginx 学习总结-补充

Nginx 学习总结


1. Nginx 配置结构与流量访问逻辑

1.1 核心配置文件结构

Nginx 的主配置文件(通常是 /etc/nginx/nginx.conf)采用模块化、层级化结构,核心分为以下几个层级:

perl 复制代码
# 全局块(最外层,影响全局)
user nginx;               # 运行Nginx的用户
worker_processes auto;    # 工作进程数(建议等于CPU核心数)
error_log /var/log/nginx/error.log warn;  # 错误日志路径
pid /var/run/nginx.pid;   # PID文件路径
​
# events块(影响Nginx与用户的网络连接)
events {
    worker_connections 1024;  # 单个进程最大连接数
    use epoll;                # 事件驱动模型(Linux默认epoll)
    multi_accept on;          # 批量接收新连接
}
​
# http块(核心配置,处理HTTP/HTTPS请求)
http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;
​
    sendfile on;          # 开启高效文件传输模式
    keepalive_timeout 65; # 长连接超时时间
​
    # 虚拟主机配置(server块,可多个)
    server {
        listen       80;         # 监听端口
        server_name  localhost;  # 主机名/域名
​
        location / {             # 路由匹配规则
            root   /usr/share/nginx/html; # 静态文件根目录
            index  index.html index.htm; # 默认首页文件
        }
​
        error_page  404              /404.html;
        location = /404.html {
        }
​
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

层级关系总结:

全局块 → events块 → http块 → server块 → location块,层级越靠下,配置优先级越高(同层级内按匹配规则决定)。

1.2 流量访问逻辑(请求处理流程)

用户请求从发送到 Nginx 返回响应,会经历以下核心步骤:

  1. 客户端建立连接:客户端通过 TCP 协议连接 Nginx 监听的端口(如 80/443),三次握手完成连接。

  2. 请求解析与分发:Nginx 读取请求头,解析请求的 IP、端口、域名、请求路径等信息。

  3. 匹配 server 块 :Nginx 根据listen端口和server_name域名,匹配对应的虚拟主机(server块),匹配优先级:

    • 先匹配listen端口;
    • 端口相同则优先匹配精确域名,再匹配通配符域名,最后匹配正则域名;
    • 若都不匹配,使用第一个默认的server块。
  4. 匹配 location 块:进入匹配到的server块后,根据请求路径匹配location规则,匹配优先级(从高到低):

    • = 精确匹配(如location = /index.html
    • ^~ 前缀匹配(不检查正则,直接匹配前缀)
    • ~/~* 正则匹配(区分 / 不区分大小写)
    • 普通前缀匹配(最长匹配优先)
  5. 执行 location 配置 :根据location中的配置执行逻辑,比如返回静态文件、反向代理到后端、重定向、防盗链等。

  6. 构建响应并返回:Nginx 处理完成后,生成响应头和响应体,通过 TCP 连接返回给客户端,最后关闭或复用连接(长连接)。


2. Nginx 安装(二进制 + 多 OS 软件包方式)

2.1 软件包方式(多 OS 通用,简单快捷)

(1)CentOS/RHEL 系列
ini 复制代码
# 安装依赖
yum install -y yum-utils
# 添加官方Nginx源
cat > /etc/yum.repos.d/nginx.repo << EOF
[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
EOF
# 安装Nginx
yum install -y nginx
# 启动并设置开机自启
systemctl start nginx
systemctl enable nginx
(2)Ubuntu/Debian 系列
ruby 复制代码
# 安装依赖
apt update && apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
# 添加官方Nginx源
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | tee /etc/apt/sources.list.d/nginx.list
# 安装Nginx
apt update && apt install -y nginx
# 启动并设置开机自启
systemctl start nginx
systemctl enable nginx

2.2 二进制源码编译安装(自定义模块,灵活可控)

(1)准备依赖
r 复制代码
# CentOS/RHEL
yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel wget
​
# Ubuntu/Debian
apt install -y gcc g++ make libpcre3-dev zlib1g-dev libssl-dev wget
(2)下载并编译安装
bash 复制代码
# 下载Nginx源码(以1.26.0为例)
wget https://nginx.org/download/nginx-1.26.0.tar.gz
tar -zxvf nginx-1.26.0.tar.gz
cd nginx-1.26.0
​
# 配置编译选项(可添加自定义模块,如--with-stream开启四层代理)
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-stream  # 开启四层代理模块(后续代理MySQL/Redis需要)
​
# 编译并安装
make && make install
​
# 创建软链接,方便直接调用
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
​
# 启动Nginx
nginx
# 停止/重启
nginx -s stop  # 强制停止
nginx -s reload # 平滑重启(不中断服务)

3. Nginx HTTPS 配置、防盗链、重定向实践

3.1 HTTPS 配置(Let's Encrypt 免费证书为例)

(1)获取免费 SSL 证书
bash 复制代码
# 安装certbot工具
yum install -y certbot  # CentOS
apt install -y certbot  # Ubuntu
​
# 自动获取证书(需域名解析到当前服务器)
certbot certonly --webroot -w /usr/share/nginx/html -d yourdomain.com -d www.yourdomain.com
# 证书默认路径:/etc/letsencrypt/live/yourdomain.com/
(2)配置 HTTPS 虚拟主机

nginx.confhttp块中添加server块:

ruby 复制代码
server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;
​
    # SSL证书配置
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
​
    # 优化SSL配置,提升安全性和性能
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
​
    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}
​
# 配置HTTP自动跳转到HTTPS
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

3.2 防盗链配置(防止图片 / 资源被其他网站盗用)

通过校验请求头中的Referer字段实现防盗链:

ini 复制代码
server {
    listen 80;
    server_name yourdomain.com;
    root /usr/share/nginx/html;
​
    # 对图片资源开启防盗链
    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
        valid_referers none blocked server_names *.yourdomain.com; # 允许的来源
        if ($invalid_referer) {
            # 盗链请求返回403或替换为提示图片
            return 403;
            # rewrite ^/.*$ /403.png break;  # 也可以返回自定义提示图
        }
    }
}

说明:

  • none:允许没有 Referer 的请求(如直接访问);
  • blocked:允许 Referer 被防火墙屏蔽的请求;
  • *.yourdomain.com:允许本域名及子域名的请求。

3.3 重定向配置(常见场景)

(1)HTTP 301 永久重定向(跳转到 HTTPS,上面已演示)
(2)域名跳转(旧域名跳转到新域名)
perl 复制代码
server {
    listen 80;
    server_name olddomain.com www.olddomain.com;
    return 301 https://www.newdomain.com$request_uri;
}
(3)路径重定向(旧路径跳转到新路径)
bash 复制代码
server {
    listen 80;
    server_name yourdomain.com;
​
    # 精确匹配重定向
    location = /old.html {
        return 301 /new.html;
    }
​
    # 正则匹配重定向(带参数)
    location ~* ^/blog/(.*)$ {
        rewrite ^/blog/(.*)$ /article/$1 permanent;
    }
}

说明:permanent表示 301 永久重定向,redirect表示 302 临时重定向。


4. Nginx 虚拟主机配置(IP / 多端口 / 多域名)

虚拟主机的核心是同一台服务器上通过不同标识区分多个网站,Nginx 支持三种方式实现:

4.1 基于 IP 的虚拟主机(多 IP 对应不同网站)

ini 复制代码
# 服务器有两个IP:192.168.1.10和192.168.1.11
server {
    listen 80;
    server_name 192.168.1.10;
    root /usr/share/nginx/html/site1;
    index index.html;
}
​
server {
    listen 80;
    server_name 192.168.1.11;
    root /usr/share/nginx/html/site2;
    index index.html;
}

4.2 基于端口的虚拟主机(同一 IP 不同端口对应不同网站)

ini 复制代码
server {
    listen 80;
    server_name 192.168.1.10;
    root /usr/share/nginx/html/site1;
    index index.html;
}
​
server {
    listen 8080;
    server_name 192.168.1.10;
    root /usr/share/nginx/html/site2;
    index index.html;
}

4.3 基于域名的虚拟主机(同一 IP 同一端口不同域名对应不同网站)

最常用的方式,也是企业中主流的实现:

ini 复制代码
server {
    listen 80;
    server_name www.site1.com;
    root /usr/share/nginx/html/site1;
    index index.html;
}
​
server {
    listen 80;
    server_name www.site2.com;
    root /usr/share/nginx/html/site2;
    index index.html;
}

注意:需要将两个域名都解析到服务器的 IP 上,Nginx 会根据Host请求头匹配对应的server_name


5. Nginx 反向代理与动静分离演示

5.1 反向代理基础配置

反向代理的核心是proxy_pass指令,将客户端请求转发到后端服务器(如 Tomcat、Node.js、Java 应用等)。

ini 复制代码
http {
    # 定义后端服务器组(方便负载均衡,这里先配置单台)
    upstream backend_server {
        server 127.0.0.1:8080;  # 后端Java应用地址
    }
​
    server {
        listen 80;
        server_name yourdomain.com;
​
        location / {
            proxy_pass http://backend_server;  # 转发到后端
            # 代理头配置(传递客户端真实信息给后端)
            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;
        }
    }
}

5.2 动静分离配置(静态资源由 Nginx 处理,动态请求转发到后端)

原理:静态资源(HTML、CSS、JS、图片)直接由 Nginx 返回,减少后端服务器压力;动态请求(API、数据库交互)转发到后端应用。

bash 复制代码
http {
    upstream backend_server {
        server 127.0.0.1:8080;
    }
​
    server {
        listen 80;
        server_name yourdomain.com;
        root /usr/share/nginx/html;  # 静态资源根目录
​
        # 静态资源直接由Nginx处理
        location ~* .(html|css|js|jpg|jpeg|png|gif|ico)$ {
            expires 7d;  # 设置静态资源缓存7天,提升性能
            add_header Cache-Control "public, max-age=604800";
        }
​
        # 动态请求转发到后端
        location /api/ {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

动静分离的优势:

  • Nginx 处理静态资源性能极高,能大幅降低后端服务器负载;
  • 静态资源可单独做 CDN 加速,提升用户访问速度;
  • 后端服务器只专注处理业务逻辑,架构更清晰。

6. Nginx 四层代理实践(代理 MySQL/Redis)

四层代理工作在传输层(TCP/UDP 协议),通过stream模块实现,和之前的http模块是同级的。

6.1 配置代理 MySQL(默认端口 3306)

ini 复制代码
# 在nginx.conf中,和http块同级添加stream块
stream {
    # 定义MySQL后端服务器组
    upstream mysql_backend {
        server 192.168.1.20:3306;  # MySQL服务器地址
    }
​
    # 代理MySQL
    server {
        listen 3306;  # Nginx监听的端口,客户端连接这个端口
        proxy_pass mysql_backend;
        proxy_connect_timeout 10s;
        proxy_timeout 300s;
    }
}

客户端连接:mysql -h 你的Nginx服务器IP -P 3306 -u root -p,Nginx 会将请求转发到后端 MySQL 服务器。

6.2 配置代理 Redis(默认端口 6379)

ini 复制代码
stream {
    # 定义Redis后端服务器组
    upstream redis_backend {
        server 192.168.1.30:6379;  # Redis服务器地址
    }
​
    # 代理Redis
    server {
        listen 6379;
        proxy_pass redis_backend;
        proxy_connect_timeout 5s;
        proxy_timeout 300s;
    }
}

客户端连接:redis-cli -h 你的Nginx服务器IP -p 6379,Nginx 会将请求转发到后端 Redis 服务器。


7.Nginx 面试高频问答合集

基础认知类

1. 说一说 Nginx 是什么,它有什么特点?

Nginx 是一款轻量级、高性能的HTTP 反向代理服务器、Web 静态服务器、四层 / TCP 代理服务器,由俄罗斯程序员开发,开源免费。

核心特点:

  1. 高并发 :采用事件驱动模型(epoll) ,异步非阻塞架构,单机可支撑十万级并发连接;
  2. 轻量低耗:代码精简,内存占用极小,CPU 消耗低;
  3. 模块化设计:功能以模块形式扩展,按需编译安装;
  4. 稳定性极强:单机常年不间断运行极少宕机;
  5. 功能丰富:支持反向代理、负载均衡、HTTPS、动静分离、限流、缓存、防盗链、重定向、四层代理等;
  6. 跨平台:支持 Linux、Windows、Mac 等主流系统,企业主流部署在 Linux。
2. Nginx 和 Apache 区别是什么?

  1. 架构模型

    • Nginx:异步非阻塞、事件驱动,多进程 + 多线程,单进程处理大量连接;
    • Apache:同步阻塞,多进程 / 多线程模型,一个连接占用一个线程,高并发性能差。
  2. 并发能力

    Nginx 远超 Apache,高并发场景首选 Nginx。

  3. 资源占用

    Nginx 内存、CPU 占用更低。

  4. 静态资源处理

    Nginx 静态文件转发、读取速度碾压 Apache。

  5. 模块扩展

    Apache 原生模块生态更老更全;Nginx 依赖第三方模块拓展。

  6. 使用场景

    现在企业基本统一用 Nginx 做前端入口网关。

进程架构面试题

3. 讲一下 Nginx 进程模型?

Nginx 采用主进程 + 多个工作进程架构:

  1. Master 主进程

    • 负责读取、解析配置文件;
    • 管理 Worker 工作进程;
    • 接收运维命令:启动、停止、重启、重载配置;
    • 监控 Worker 进程状态,进程挂掉自动拉起。
  2. Workr 工作进程

    • 实际处理客户端网络请求;
    • 默认数量等于 CPU 核心数,最优配置 worker_processes auto;
    • 多个 Worker 进程相互独立,抢占式监听端口。
  3. Cache Loader 缓存加载进程:加载磁盘缓存到内存。

  4. Cache Manager 缓存管理进程:清理过期缓存。

优点:进程隔离,一个 Worker 异常不影响整体服务,稳定性极高。

4. Nginx 平滑重启原理是什么?

执行 nginx -s reload 即为平滑重启,不中断业务访问

  1. Master 进程读取新配置,校验配置语法是否合法;
  2. 启动一批新的 Worker 进程,使用新配置处理新请求;
  3. 老的 Worker 进程不再接收新连接,继续处理已建立的旧请求;
  4. 旧请求全部处理完成后,旧 Worker 进程自动退出;
  5. 全程服务无断开,实现无间断更新配置

配置与请求流程类

5. Nginx 客户端请求完整访问流程?

  1. 客户端发起 TCP 连接,三次握手建立连接;
  2. 发送 HTTP 请求报文;
  3. Nginx 读取请求头,解析域名、端口、请求路径;
  4. 优先匹配 listen 监听端口
  5. 同端口下匹配 server_name 虚拟主机;
  6. 匹配成功进入对应 server 块,再匹配内部 location 路由规则;
  7. 执行 location 内逻辑:返回静态资源 / 反向代理后端 / 重定向 / 限流拦截;
  8. 组装响应报文返回客户端;
  9. 根据 keepalive 决定断开连接或复用长连接。
6. Nginx location 匹配优先级顺序是什么?

答(从高到低)

  1. = 精确匹配,优先级最高;
  2. ^~ 前缀匹配,匹配成功不再走正则
  3. ~ 区分大小写正则匹配、~* 不区分大小写正则;
  4. 普通前缀匹配(最长路径优先匹配);
  5. / 通用默认匹配,最后兜底。
7. root 和 alias 的区别?

  1. root拼接规则:root路径 + 访问路径

    示例:

    root /html; 访问 /test/1.jpg → 找 /html/test/1.jpg

  2. alias:直接精准替换访问路径,不会拼接

    示例:alias /html/test/;访问 test/1.jpg → 直接找/html/test/1.jpg

  3. 总结:

    • 日常静态站点多用 root;
    • 路径别名映射、单独目录挂载优先用 alias;
    • alias 结尾必须加 / 避免路径出错。

反向代理 & 正向代理高频题

8. 正向代理和反向代理区别,各自场景?

  1. 正向代理

    • 代理客户端,替客户端访问外网;
    • 客户端明确知道代理存在,需要手动配置代理地址;
    • 作用:隐藏本机 IP、内网翻墙、内网统一出口上网;
    • Nginx 很少做正向代理。
  2. 反向代理

    • 代理后端服务器,对外统一入口;
    • 客户端无感知,以为访问的就是真实业务服务器;
    • 作用:隐藏后端服务地址、负载均衡、统一 SSL 加密、动静分离、网关拦截;
    • 企业项目99% 都是 Nginx 反向代理
9. 反向代理为什么要配置 proxy_set_header 一系列请求头?

默认反向代理后,后端拿到的客户端 IP、域名全是 Nginx 服务器信息,丢失真实客户端信息,必须手动传递:

bash 复制代码
proxy_set_header Host $host; # 传递真实访问域名
proxy_set_header X-Real-IP $remote_addr; # 传递真实客户端IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 多层代理溯源IP
proxy_set_header X-Forwarded-Proto $scheme; # 传递http/https协议

业务后端可通过这些请求头获取真实访客 IP、访问域名、请求协议,用于日志统计、登录校验、黑白名单、地区限流等。

负载均衡面试必考

10. Nginx upstream 五种负载均衡策略详解?

  1. 轮询(默认)

    请求按顺序轮流分发所有后端节点,节点性能一致使用。

  2. 加权轮询 weight

    给配置高的服务器加大权重,接收更多流量,适配服务器性能不均场景。

  3. ip_hash

    根据客户端 IP 哈希固定分配后端节点,实现会话保持;

    缺点:后端宕机容易会话错乱,集群扩容后会话重新打散。

  4. least_conn 最少连接

    把请求分发到当前活跃连接数最少的节点,适合接口耗时不一致业务。

  5. url_hash(第三方模块)

    根据访问 URL 哈希定向分发,多用于静态资源缓存服务器集群。

11. Nginx 负载均衡后端节点状态参数有哪些?

  • backup:备用服务器,主节点全部宕机才启用;
  • down:标记节点永久不可用;
  • max_fails:最大失败连接次数;
  • fail_timeout:失败后暂停转发时长;
  • max_conn:限制后端最大并发连接数。

示例:

ini 复制代码
upstream web{
server 127.0.0.1:8080 max_fails=3 fail_timeout=10s;
server 127.0.0.1:8081 backup;
}

动静分离面试题

12. 什么是动静分离,为什么要做?

  1. 定义:将网站静态资源和动态接口请求拆分处理:

    • 静态资源:html、css、js、图片、视频、字体等,Nginx 直接返回
    • 动态请求:登录、下单、查询数据等接口,转发后端 Java/PHP 服务
  2. 好处:

    • 极大减轻后端应用服务器压力;
    • Nginx 处理静态资源效率远超业务服务;
    • 静态资源可加浏览器缓存,提升页面加载速度;
    • 架构解耦,静态资源可独立部署 CDN。

HTTPS 与安全类面试

13. Nginx 配置 HTTPS 流程,以及 HTTP 强制跳转 HTTPS 思路?

  1. 部署流程

    • 域名完成备案与 DNS 解析;
    • 申请 SSL 证书(免费 Let's Encrypt / 商业证书);
    • Nginx 开启 ssl_module 模块;
    • 443 端口配置证书路径、加密协议、加密套件;
  2. 强制跳转思路

    • 单独监听 80 端口,匹配所有域名,使用 301 永久重定向跳转到 HTTPS;
    • 线上正式环境统一使用 301,利于 SEO 收录。
14. Nginx 如何配置图片防盗链?原理是什么?

  1. 原理:浏览器访问资源时会携带

    复制代码
    Referer

    请求头,记录来源网站地址,Nginx 校验来源合法性,非法来源直接拦截。

  2. 配置核心:

    valid_referers 配置合法域名,匹配失败$invalid_referer 生效,返回 403 拦截盗链。

限流、缓存高频面试

15. Nginx 实现请求限流有哪几种方式?

  1. limit_req 限制每秒请求数(令牌桶),防高频刷接口;
  2. limit_conn 限制单 IP 并发连接数,防恶意大量连接攻击;
  3. 搭配黑白名单、IP 区域封禁实现多层防护。
16. Nginx 静态资源缓存如何配置,作用是什么?

通过 expires 设置浏览器缓存过期时间:

ini 复制代码
location ~* .(png|jpg|css|js)${
expires 7d;
add_header Cache-Control public;
}

作用:用户首次加载缓存静态文件,7 天内重复访问直接走本地缓存,大幅减少服务器请求量,提升访问速度

四层代理 Stream 面试题

17. Nginx http 模块和 stream 模块区别?

  1. http 模块 :工作在应用层,专门代理 HTTP/HTTPS 网页请求;

  2. stream 模块 :工作在传输层 TCP/UDP,属于四层代理;

  3. 使用场景:

    • stream 用于代理数据库 MySQL、缓存 Redis、SSH、MQ 等 TCP 服务;
    • 两个模块同级并列,不能互相嵌套。

故障排查 & 面试题

18. Nginx 常见报错 403、404、502、503 原因分别是什么?

  1. 403 权限拒绝

    文件权限不足、目录无默认首页、防盗链拦截、IP 黑名单拦截;

  2. 404 资源不存在

    访问路径错误、root/alias 路径配置错误、文件删除;

  3. 502 Bad Gateway

    反向代理后端服务宕机、端口不通、后端进程卡死;

  4. 503 Service Unavailable

    后端负载过高、限流限制、upstream 所有节点全部不可用。

19. 日常 Nginx 排错常用命令?

  1. nginx -t:检查配置文件语法错误;
  2. nginx -s reload:平滑重启;
  3. nginx -s stop:快速停止;
  4. 查看错误日志:/var/log/nginx/error.log
  5. 查看访问日志:/var/log/nginx/access.log
  6. netstat -tulpn | grep nginx:查看监听端口。

高阶面试压轴题

20. 大型项目中 Nginx 在整体架构中处于什么位置?

整体流量架构层级:

复制代码
用户浏览器/APP → 域名DNS → CDN → 高防IP → Nginx负载均衡网关 → 业务网关Gateway → 微服务集群 → 数据库/缓存

Nginx 是整个后端服务最外层流量入口,承担:流量接入、SSL 解密、限流防攻击、动静分离、负载分发、请求过滤、灰度发布前置能力。

相关推荐
咚为14 小时前
比AccessLog更全面的原生Nginx 日志记录
运维·nginx·junit
身如柳絮随风扬16 小时前
Nginx 完全指南:核心用途、配置文件详解与动态配置实践
运维·nginx
一个处女座的程序猿O(∩_∩)O16 小时前
如何保持nginx配置与前端打包dist的路径保持一致、解决页面刷新白屏以及页面跳转问题
运维·前端·nginx
椰汁菠萝1 天前
[特殊字符] Nginx UI:Docker 部署与完全使用指南
nginx·ui·docker
yoyo_zzm1 天前
ThinkPHP1.X核心特性解析
数据库·spring boot·nginx
程序员老邢1 天前
【技术底稿 36】Docker Compose 微服务迁移 K3s:离线导入、镜像挂载、Nginx 重定向全踩坑复盘
nginx·docker·云原生·k3s·微服务迁移·技术底稿·容器运维
JiaWen技术圈1 天前
Web 安全防护 介绍
运维·nginx·安全
看到代码头都是大的2 天前
Windows环境下绿色版nginx 1.30使用
运维·nginx
lifewange2 天前
Nginx + Kafka 可编程精细控制 完整版(可直接落地运行)
运维·nginx·kafka