
Nginx超全实战教程核心原理、配置详解、反向代理与负载均衡落地前言本文基于完整的Nginx实操手册整理适配Typora阅读全程保留完整命令代码、细化核心知识点全局替换所有域名标识为hyc新增大量实操注释。涵盖Nginx核心特性、架构、配置语法、虚拟主机、HTTPS、PHP解析、反向代理、七层负载均衡全场景实战重点强化location匹配规则详解与带注释案例适合零基础入门、运维日常查阅与实战落地。一、Nginx核心基础介绍1.1 Nginx简介Nginx(发音:engine‑x)是一款高性能、事件驱动、轻量级的开源 Web 服务器同时集成反向代理、负载均衡、HTTP缓存、静态资源服务等多功能是目前互联网主流的服务中间件。由俄罗斯工程师 Igor Sysoev 开发核心优势为高并发、低资源占用、高稳定性单服务可支撑5万并发连接CPU、内存消耗极低远超传统Apache服务器广泛应用于网站部署、服务网关、集群负载等生产场景。1.2 Nginx五大核心特点1异步非阻塞事件驱动模型核心优势采用 epoll/kqueue IO多路复用模型彻底区别于传统Apache「一连接一进程」的笨重阻塞模型是Nginx高并发能力的核心根源传统Apache每建立一个客户端连接就创建一个独立进程/线程1万并发需要创建1万个进程内存占用暴涨系统上下文切换开销极大并发能力弱、稳定性差Nginx仅启动少量固定worker进程单worker进程可同时监听、处理成千上万个客户端连接空闲连接处于阻塞等待状态几乎不消耗CPU资源万级并发场景下资源占用极低2轻量极简内存、CPU占用极低无多余依赖部署流程简单、配置文件简洁易懂服务启动速度快运维成本极低适配各类服务器环境。3多角色全能能力不止Web服务Nginx是多功能网关组件并非单纯的网页服务器可覆盖绝大多数Web服务运维场景静态Web服务器直接托管html/js/css/图片、静态文件无需后端程序解析性能拉满反向代理转发客户端请求至后端Java/PHP/Python/Node服务隐藏后端真实节点IP和端口负载均衡实现多后端节点流量分发搭建高可用服务集群单节点故障不影响整体业务HTTP缓存缓存后端动态响应数据重复请求直接返回缓存大幅降低后端服务压力SSL/TLS终端统一处理HTTPS证书加密解密后端服务可继续使用HTTP协议简化集群配置拓展实用功能接口限流、资源防盗链、gzip页面压缩、IP访问黑白名单、多虚拟主机多站点部署1.3 Nginx核心架构Master-Worker主从架构Nginx采用多进程主从架构进程分工明确、职责隔离稳定性极强有效避免单点进程异常影响整体服务核心分为三类进程1Master主进程root权限运行全局管理进程仅负责服务管控不处理任何客户端业务请求读取、全局校验Nginx配置文件语法与规则统一管理所有Worker子进程的创建、销毁、重启响应系统信号服务启动、快速停止、优雅退出、配置热重载、日志切割重启2Worker工作进程业务核心真正处理客户端所有网络请求的核心进程单Worker为单线程、异步非阻塞IO模型全程处理TCP连接建立、HTTP协议解析、请求转发、静态文件读写、响应返回等所有业务逻辑官方最优配置worker_processes auto;自动匹配服务器CPU物理核心数最大化利用硬件性能多个Worker进程相互独立、不共享内存单个Worker异常不会影响其他进程正常工作3Cache缓存进程可选拓展进程cache manager后台定时运行自动清理过期磁盘缓存文件释放服务器存储空间cache loaderNginx服务启动时自动加载历史缓存元数据快速恢复缓存服务能力无需预热1.4 Nginx热重载原理nginx -s reloadNginx支持无宕机配置热重载是生产环境核心常用功能修改配置后无需重启服务全程业务无中断、无宕机核心流程如下Master主进程读取最新配置文件严格校验语法合法性配置错误直接终止重载不影响原有服务Master进程批量启动一批全新Worker工作进程新进程加载最新配置负责处理后续所有新客户端请求Master向旧Worker进程发送优雅退出信号旧进程不再接收新请求持续处理完已建立的连接、完成响应后自动退出✅ 生产价值全程服务不中断、业务零宕机适配线上环境无缝更新配置、迭代规则1.5 Linux常用核心命令运维必备# 启动Nginx服务默认读取主配置文件启动 nginx # 快速停止Nginx服务强制断开所有现有连接生产不推荐 nginx -s stop # 优雅停止Nginx服务处理完当前已有连接、响应完成后再退出生产停机首选 nginx -s quit # 热重载配置最常用修改配置后必执行无宕机更新规则 nginx -s reload # 校验配置文件语法合法性修改配置后优先执行避免重载报错 nginx -t二、Nginx环境部署实操2.1 节点环境规划节点名称节点IP核心作用nginx-server10.1.8.10/24部署Nginx主服务提供Web访问、反向代理、负载均衡能力nginx-client10.1.8.11/24客户端测试节点模拟用户访问Nginx服务验证所有配置效果2.2 节点环境初始化2.2.1 服务端nginx-server配置# 修改服务器主机名区分节点角色 hostnamectl set-hostname nginx-server # 配置静态IP、网关、DNS保证网络稳定避免动态IP变化影响实验 nmcli connection modify ens33 ipv4.method manual \ ipv4.addresses 10.1.8.10/24 \ ipv4.gateway 10.1.8.2 \ ipv4.dns 10.1.8.2 autoconnect yes # 生效网络配置无需重启网卡 nmcli connection up ens332.2.2 客户端nginx-client配置# 修改客户端主机名 hostnamectl set-hostname nginx-client # 配置客户端静态网络参数与服务端同网段互通 nmcli connection modify ens33 ipv4.method manual \ ipv4.addresses 10.1.8.11/24 \ ipv4.gateway 10.1.8.2 \ ipv4.dns 10.1.8.2 autoconnect yes # 生效网络配置 nmcli connection up ens332.3 Nginx安装与启动# 配置阿里云epel镜像源解决CentOS默认源无Nginx、依赖缺失问题 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # 一键安装Nginx及所有依赖 yum -y install nginx # 设置开机自启并立即启动Nginx服务 systemctl enable nginx --now2.4 自定义首页与防火墙放行# 备份Nginx默认首页保留原始文件方便后续恢复 mv /usr/share/nginx/html/index.html{,.ori} # 自定义网站首页内容用于测试访问 echo Hello World From Nginx /usr/share/nginx/html/index.html # 防火墙永久放行HTTP80端口服务允许外网访问 firewall-cmd --add-servicehttp --permanent # 重载防火墙规则配置立即生效 firewall-cmd --reload2.5 本地域名解析测试修改客户端hosts文件绑定自定义测试域名生产环境需配置公网DNS解析实现域名访问站点# Linux客户端修改hosts解析文件 vim /etc/hosts # Windows客户端hosts路径C:\Windows\System32\drivers\etc\hosts # 添加IP与域名绑定解析规则 10.1.8.10 www.hyc.cloud # 客户端测试域名访问 curl http://www.hyc.cloud # 正常输出结果Hello World From Nginx三、Nginx配置文件深度详解Nginx主配置文件默认路径/etc/nginx/nginx.conf采用层级嵌套模块化结构配置优先级严格遵循全局块 events块 http块 server块 location块子级配置会覆盖父级同名配置3.1 五大配置块作用详解配置块作用范围核心用途全局块整个Nginx实例全局生效配置进程运行用户、工作进程数、全局日志路径、PID进程文件events块全局网络连接层面配置单进程最大并发连接数、IO多路复用模型、连接接收规则http块所有HTTP/HTTPS服务全局生效配置日志格式、文件传输、长连接、MIME类型、引入子配置文件server块单个虚拟主机/独立站点配置站点监听端口、绑定域名、网站根目录、错误页面location块站点内指定URI请求路径精准匹配请求路径配置代理转发、静态资源、访问控制、限流等核心规则3.2 完整默认配置文件超详细注释版# 1.全局块整个Nginx全局生效配置 # 指定Nginx工作进程的运行用户默认nginx提升服务安全性 user nginx; # 工作进程数auto自动适配服务器CPU物理核心数性能最优 worker_processes auto; # Nginx全局错误日志存储路径记录服务启动、配置、运行异常信息 error_log /var/log/nginx/error.log; # Nginx主进程PID文件存储master进程ID用于服务管控 pid /run/nginx.pid; # 加载Nginx外部拓展模块配置支持功能拓展 include /usr/share/nginx/modules/*.conf; # 2.events块网络连接与并发配置 events { # 单个worker进程支持的最大并发连接数默认1024可根据业务调大 worker_connections 1024; # 指定IO多路复用模型Linux系统默认epoll高并发最优模型 use epoll; # 允许进程一次性接收多个新连接提升连接处理效率 multi_accept on; } # 3.http块所有HTTP/HTTPS服务通用全局配置 http { # 自定义访问日志格式命名为main可自定义字段 log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; # 启用访问日志使用main格式记录所有客户端正常请求日志 access_log /var/log/nginx/access.log main; # 开启sendfile高效文件传输机制内核直接转发文件跳过用户态拷贝大幅优化静态资源速度 sendfile on; # 累积数据包后一次性发送减少网络IO次数提升传输效率 tcp_nopush on; # 禁用Nagle算法减少请求响应延迟适配实时业务 tcp_nodelay on; # HTTP长连接超时时间65秒无新请求自动断开连接释放资源 keepalive_timeout 65; # 文件类型哈希表容量提升MIME类型匹配效率 types_hash_max_size 4096; # 加载系统默认MIME类型映射识别各类文件后缀对应的响应类型 include /etc/nginx/mime.types; # 无法识别的文件类型默认作为二进制流下载 default_type application/octet-stream; # 批量加载conf.d目录下所有自定义配置文件实现配置模块化管理 include /etc/nginx/conf.d/*.conf; # 4.server块默认虚拟主机站点配置 server { # 监听IPv4所有地址的80端口HTTP默认端口 listen 80; # 监听IPv6所有地址的80端口兼容IPv6访问 listen [::]:80; # 匹配所有未明确绑定域名的请求作为默认兜底站点 server_name _; # 站点默认资源根目录 root /usr/share/nginx/html; # 加载默认拓展配置文件 include /etc/nginx/default.d/*.conf; # 自定义404错误页面资源不存在时跳转 error_page 404 /404.html; # 精准匹配404页面请求无额外处理规则 location /404.html {} # 自定义5xx服务器错误页面覆盖500/502/503/504所有服务异常 error_page 500 502 503 504 /50x.html; # 精准匹配5xx错误页面请求 location /50x.html {} } }3.3 Location匹配规则【超详细精讲全注释代码】location是Nginx最核心、最易踩坑的知识点用于精准匹配客户端请求的URI路径实现不同路径定制不同处理规则代理、静态访问、权限控制等。匹配优先级严格固定从高到低逐级递减命中高优先级规则后立即终止所有后续匹配不会向下穿透。完整优先级排序精确匹配 前缀强制匹配 正则匹配 普通前缀匹配 默认兜底匹配优先级1精确匹配location /uri最高优先级严格完全匹配请求路径请求URI必须和配置路径一字不差不匹配任何参数、后缀、子路径常用于首页、固定接口、登录接口的专属规则优先级最高优先命中。# 精准匹配【根路径首页】 # 仅匹配http://域名/ # 不匹配http://域名/index.html、http://域名/?id1、http://域名/xxx location / { index index.html; # 精准访问根路径时返回默认首页 } # 精准匹配【登录接口】 # 仅精确匹配http://域名/login # 不匹配/login?user1、/login/、/login/out location /login { proxy_pass http://127.0.0.1:8080/login; # 单独转发登录接口请求 proxy_set_header Host $http_host; add_header X-Match-Type 精确匹配; # 标记匹配类型方便调试 }优先级2前缀强制匹配location ^~ /uri次高优先级前缀匹配模式只要请求路径以指定路径开头即命中核心特性匹配成功后直接终止所有后续正则匹配防止静态资源路径被正则规则覆盖常用于静态资源目录图片、css、js、固定业务路径保护。# 强制前缀匹配所有/static开头的静态资源请求 # 匹配/static/、/static/css/、/static/img/1.png、/static/js/main.js # 命中后不再执行下方所有正则、普通匹配规则 location ^~ /static/ { root /data/resource; # 静态资源根目录 expires 7d; # 静态资源缓存7天减少重复请求 add_header X-Match-Type 前缀强制匹配; # 调试标记 } # 强制匹配后台管理路径优先拦截后台请求做权限控制 location ^~ /admin/ { allow 10.1.8.0/24; # 仅允许内网IP访问后台 deny all; # 拒绝所有外网IP add_header X-Match-Type 前缀强制匹配-后台; }优先级3正则匹配~/~*中高优先级正则表达式匹配路径优先级低于前缀强制匹配高于普通前缀匹配。按配置文件从上到下顺序匹配先命中的规则先生效后续正则不再匹配区分大小写与不区分大小写两种模式。~大小写敏感正则匹配严格区分大小写~*大小写不敏感正则匹配日常开发最常用# 1. 不区分大小写正则匹配所有图片后缀资源jpg/png/gif/jpeg # 匹配1.JPG、2.Png、3.gif、4.jpeg适配用户随意大小写访问 location ~* \.(jpg|png|gif|jpeg)$ { root /data/images; # 图片资源存储目录 expires 30d; # 图片长期缓存 add_header X-Match-Type 正则不区分大小写; } # 2. 大小写敏感正则仅匹配小写/api开头的接口 # 匹配/api/list、/api/user # 不匹配/API/list、/Api/info location ~ /api/ { proxy_pass http://127.0.0.1:9090; add_header X-Match-Type 正则大小写敏感; } # 3. 匹配所有php动态请求文件 location ~* \.php$ { try_files $uri 404; # 防止恶意路径伪造 fastcgi_pass 127.0.0.1:9000; add_header X-Match-Type 正则PHP匹配; }优先级4普通前缀匹配location /uri中低优先级无特殊符号的普通前缀匹配请求路径以指定路径开头即命中支持最长路径优先原则路径越长匹配优先级越高优先级低于正则匹配常用于常规业务路径分发。# 基础前缀匹配匹配所有/api/开头的请求 # 匹配/api/user、/api/order、/api/list location /api/ { proxy_pass http://127.0.0.1:9090/api/; add_header X-Match-Type 普通前缀匹配-基础API; } # 更长路径前缀匹配优先级高于上方/api/匹配 # 精准匹配/api/user/所有子路径长路径优先生效 # 匹配/api/user/info、/api/user/edit、/api/user/list location /api/user/ { proxy_pass http://127.0.0.1:9091/user/; add_header X-Match-Type 普通前缀匹配-长路径优先; }优先级5默认兜底匹配location /最低优先级全局默认兜底规则所有上述规则均未命中时统一命中该规则用于处理未知路径、全局默认代理、默认页面跳转优先级最低永远最后匹配。# 全局兜底匹配所有未匹配的请求全部走此规则 location / { root /usr/share/nginx/html; # 默认站点根目录 index index.html; # 默认首页 proxy_pass http://127.0.0.1:8080; # 全局默认代理后端服务 add_header X-Match-Type 默认兜底匹配; }Location匹配核心总结口诀必背精确优先、前缀强制截断、正则顺序匹配、长路径优先、兜底最后核心避坑点正则匹配会被^~前缀匹配截断普通前缀匹配不会截断正则且遵循最长路径优先3.4 Nginx内置常用变量实操必备所有变量可直接用于proxy代理、请求头传递、日志格式化、重写规则是自定义配置的核心基础$uri # 请求纯净URI不含get查询参数纯路径 $args # URL后面的get查询参数?后的所有内容 $request_uri # 完整请求URI所有get参数原始请求地址 $remote_addr # 客户端真实IP地址最常用用于透传真实客户端IP $http_host # 客户端请求的域名/端口适配多域名站点 $http_user_agent # 客户端浏览器UA标识可用于设备识别、爬虫拦截 $scheme # 请求协议固定为http/https用于协议判断跳转 $server_name # 当前匹配成功的虚拟主机域名 $request_method # 请求方法GET/POST/PUT/DELETE可用于接口请求限制四、Nginx五大核心功能实战4.1 静态Web服务器实战Nginx依托sendfile内核传输机制可直接托管静态资源无需后端程序解析传输性能远超Java、PHP动态程序是静态资源部署首选方案。# 静态资源专属站点配置 server { listen 80; # 监听80端口 server_name static.hyc.cloud; # 静态资源专属域名 root /data/static; # 静态资源存放根目录 index index.html index.htm; # 站点默认首页文件 # 静态资源缓存优化 location ~* \.(html|js|css|png|jpg|gif)$ { expires 7d; # 缓存7天减轻服务器压力 add_header Cache-Control public; } }4.2 反向代理实战生产核心重点4.2.1 正向代理 vs 反向代理通俗区别正向代理代理客户端隐藏客户端真实IP和信息例翻墙工具、公司内网代理上网服务端不知道真实客户端是谁反向代理代理服务端隐藏后端真实服务器IP、端口客户端无感知只访问Nginx网关生产环境主流架构4.2.2 完整反向代理配置带真实IP透传、全注释# API接口反向代理规则 location /api/ { # 将所有/api/开头的请求转发至后端Java服务 proxy_pass http://127.0.0.1:8080; # 透传客户端请求域名后端获取真实访问域名 proxy_set_header Host $http_host; # 透传客户端真实IP核心解决后端获取不到真实客户端IP问题 proxy_set_header X-Real-IP $remote_addr; # 透传完整代理链路IP多层代理场景溯源客户端 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 透传客户端请求协议http/https后端适配协议跳转 proxy_set_header X-Forwarded-Proto $scheme; # 超时优化配置避免请求超时断开 proxy_connect_timeout 60s; proxy_read_timeout 60s; }4.2.3 proxy_pass末尾/ 核心区别高频踩坑点·超详细解析proxy_pass 末尾是否带/直接决定转发到后端的URL路径是新手最容易出错的知识点两种场景完整区分场景1末尾带/ 剔除location匹配前缀仅转发剩余路径# 客户端请求地址http://域名/api/user/list # location匹配前缀/api/ # proxy_pass末尾带/自动剔除/api/前缀 # 后端最终接收地址http://192.168.1.102:9090/user/list location /api/ { proxy_pass http://192.168.1.102:9090/; }场景2末尾不带/ 保留location匹配前缀完整拼接转发# 客户端请求地址http://域名/api/user/list # location匹配前缀/api/ # proxy_pass末尾不带/完整保留/api/前缀 # 后端最终接收地址http://192.168.1.102:9090/api/user/list location /api/ { proxy_pass http://192.168.1.102:9090; }4.3 七层负载均衡Upstream集群实战通过upstream模块定义后端服务集群实现流量分发、节点故障自动摘除、流量权重分配解决单节点瓶颈支撑服务高可用集群架构。4.3.1 Upstream基础语法与参数详解# 定义后端服务集群自定义集群名称 upstream 集群名 { # 后端节点配置 可选参数 server 地址:端口 [参数]; } # 常用核心参数详解 weight数字 # 节点权重数值越大分配流量越多默认权重1 backup # 备用节点所有主节点故障后才启用不参与日常流量 down # 手动标记节点下线永久不接收流量 max_fails3 # 最大失败连接次数连续失败3次判定节点故障 fail_timeout30s # 节点故障后30秒内不再分发流量至该节点4.3.2 五大负载均衡算法实战全注释1默认轮询round_robinNginx默认算法请求按顺序逐一分发至后端节点节点故障自动剔除适合所有后端服务器性能一致的场景# 默认轮询算法无需额外配置 upstream backend { server nginx1.hyc.cloud:80; server nginx2.hyc.cloud:80; server nginx3.hyc.cloud:80; }2权重轮询weight在轮询基础上根据权重分配流量服务器硬件性能越好权重配置越高承担更多业务流量解决新旧服务器性能不均问题upstream backend { server nginx1.hyc.cloud:80 weight10; # 低性能节点少量流量 server nginx2.hyc.cloud:80 weight20; # 中等性能节点 server nginx3.hyc.cloud:80 weight30; # 高性能节点承担最多流量 }3IP哈希ip_hash根据客户端访问IP哈希计算同一客户端IP永久固定访问同一后端节点完美解决集群环境下session会话丢失、登录态失效问题upstream backend { ip_hash; # 开启IP哈希算法 server nginx1.hyc.cloud:80; server nginx2.hyc.cloud:80; server nginx3.hyc.cloud:80; }4最少连接least_conn智能分发流量自动将新请求分配给当前活跃连接数最少的后端节点适合请求耗时差异大、长连接较多的业务场景upstream backend { least_conn; # 开启最少连接算法 server nginx1.hyc.cloud:80; server nginx2.hyc.cloud:80; server nginx3.hyc.cloud:80; }5自定义哈希hash支持自定义变量URL、Cookie、请求头做哈希固定同一请求路径/用户访问同一节点大幅提升后端缓存命中率# 根据请求URL哈希同一URL固定访问同一节点 upstream backend { hash $request_uri; # 基于请求URL自定义哈希 server nginx1.hyc.cloud:80; server nginx2.hyc.cloud:80; }4.4 HTTPS加密与80转443强制跳转4.4.1 自建SSL证书测试环境专用# 创建证书存储目录并进入 mkdir certs cd certs # 1.生成2048位RSA私钥核心密钥需保密 openssl genrsa -out www.key 2048 # 2.生成证书请求文件绑定自定义域名 openssl req -new -key www.key -out www.csr -subj /CCN/STJS/LNJ/OLM/OUDEVOPS/CNwww.hyc.cloud/emailAddresswebadminhyc.cloud # 3.自签名生成证书有效期10年 openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt4.4.2 HTTPS站点完整配置# HTTPS加密站点配置443端口 server { listen 443 ssl http2; # 监听443HTTPS端口开启http2协议 listen [::]:443 ssl http2; # 兼容IPv6 HTTPS访问 server_name www.hyc.cloud; # 绑定域名 root /usr/share/nginx/html; # 站点根目录 # SSL证书配置 ssl_certificate /etc/ssl/certs/www.hyc.cloud/www.crt; # 公钥证书 ssl_certificate_key /etc/ssl/certs/www.hyc.cloud/www.key;# 私钥密钥 # SSL安全优化配置 ssl_session_cache shared:SSL:1m; # 开启SSL会话缓存提升握手速度 ssl_session_timeout 5m; # 会话缓存超时5分钟 ssl_ciphers HIGH:!aNULL:!MD5; # 禁用弱加密算法提升安全性 ssl_prefer_server_ciphers on; # 优先使用服务器加密套件 } # HTTP80端口强制跳转HTTPS443 server { listen 80; listen [::]:80; server_name www.hyc.cloud; # 永久301重定向所有HTTP请求强制跳转HTTPS return 301 https://$host$request_uri; }4.5 拓展实用功能认证、压缩、访问控制4.5.1 网页密码基础认证# 安装密码生成工具 yum -y install httpd-tools # 创建登录账号密码用户名hyc密码123456 htpasswd -b -c /etc/nginx/.htpasswd hyc 123456 # 配置页面密码认证 location /auth-basic/ { auth_basic 请输入账号密码登录; # 弹窗提示文案 auth_basic_user_file /etc/nginx/.htpasswd; # 密码文件路径 }4.5.2 Gzip压缩提速减小传输体积# 全局开启Gzip压缩 gzip on; # 对文本、样式、接口、JS文件开启压缩图片、视频无需压缩 gzip_types text/plain text/css application/json application/javascript; # 仅压缩1k以上文件避免小文件压缩损耗性能 gzip_min_length 1k; # 压缩等级1-96级兼顾压缩率与性能 gzip_comp_level 6;4.5.3 IP黑白名单访问控制# 后台接口仅允许内网IP访问禁止外网访问 location /admin { allow 10.1.8.0/24; # 放行内网网段 deny all; # 拒绝所有其他IP }五、NginxPHP动态环境搭建5.1 PHP环境安装# 安装PHP核心、PHP-FPM解析服务及常用拓展 yum install -y php php-fpm php-gd php-common php-pear php-mbstring php-mcrypt # 启动PHP-FPM并设置开机自启 systemctl enable php-fpm --now # 测试PHP环境是否正常 php -r echo Hello PHP;5.2 Nginx解析PHP完整配置# 匹配所有.php后缀的动态请求 location ~ \.php$ { # 安全防护伪造PHP路径直接返回404防止恶意攻击 try_files $uri 404; # 将PHP请求转发至本地9000端口PHP-FPM服务解析处理 fastcgi_pass 127.0.0.1:9000; # 默认PHP索引文件 fastcgi_index index.php; # 指定PHP脚本绝对执行路径 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 引入FastCGI默认环境变量配置 include fastcgi_params; }5.3 PHP测试页面验证# 创建PHP信息测试页面 echo ?php phpinfo(); ? /usr/share/nginx/html/info.php # 重启Nginx使配置生效 systemctl restart nginx六、虚拟主机多站点部署6.1 基于域名的多站点部署常用同一服务器、同一端口通过不同域名区分多个独立站点生产最常用多站点方案# 创建两个独立站点目录 mkdir /usr/share/nginx/web1 /usr/share/nginx/web2 # 自定义站点首页内容 echo web1.hyc.cloud 站点访问成功 /usr/share/nginx/web1/index.html echo web2.hyc.cloud 站点访问成功 /usr/share/nginx/web2/index.html # 第一个虚拟主机web1.hyc.cloud server { listen 80; server_name web1.hyc.cloud; root /usr/share/nginx/web1; index index.html; } # 第二个虚拟主机web2.hyc.cloud server { listen 80; server_name web2.hyc.cloud; root /usr/share/nginx/web2; index index.html; }6.2 基于端口的多站点部署同一域名通过不同端口区分多个站点适合内部测试站点部署# 8081端口站点 server { listen 8081; server_name www.hyc.cloud; root /usr/share/nginx/8081; index index.html; } # 8082端口站点 server { listen 8082; server_name www.hyc.cloud; root /usr/share/nginx/8082; index index.html; }七、生产常见故障排查手册502 Bad GatewayNginx无法连接后端服务常见原因后端服务宕机、代理端口配置错误、服务器防火墙拦截、后端服务未启动504 Gateway Timeout后端服务处理请求超时常见原因后端程序卡顿、接口执行过慢、Nginx代理超时时间过短403 Forbidden权限拒绝常见原因站点目录权限不足、根目录不存在、无默认首页文件、IP被拦截499 Client Closed Request客户端主动断开连接常见原因前端请求超时、用户刷新页面、客户端网络中断并发上不去性能瓶颈排查方向worker进程数配置、单进程最大连接数、系统文件句柄ulimit限制、网络参数优化八、负载均衡算法总结表算法配置方式核心适用场景核心特点默认轮询无需额外配置后端服务器性能一致、无会话保持需求请求均匀分发节点故障自动剔除无会话绑定权重轮询weight数值后端服务器硬件性能不均、新旧节点混用