nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx介绍和使用

Nginx的概述和使用清单

作者:泡沫冰@

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3代理服务器,这篇文章给大家介绍Nginx的概述和使用清单,感兴趣的朋友跟随小编一起看看吧

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3 代理服务器。它是作为一款轻量级的服务器,专门设计用来处理高并发连接,非常适合用在资源受限的环境中。Nginx 最初是为俄罗斯访问量第二的网站 Yandex.ru 而开发的,现在它已经成为全球最流行的 Web 服务器之一。

一、Nginx介绍

Nginx(发音 “engine-x”)是一款高性能的开源 Web 服务器,也常用作反向代理、负载均衡和 HTTP 缓存。

作用

角色作用

Web 服务器

直接对外提供静态文件(HTML、CSS、图片等)

反向代理

把请求转发给后端(如 Node、Python、Java),对外只暴露 Nginx

负载均衡

把流量分到多台后端服务器

SSL 终结

在入口处理 HTTPS,后端可走 HTTP

优点

典型架构

用户 → Nginx(80/443)→ 静态文件
                                        → 或转发到后端应用(如 :3000、:8080)

核心概念

最小配置示例

server {
    listen 80;  # 监听的端口
    server_name example.com;  # 虚拟主机的名字
    location / {
        root /var/www/html;
        index index.html;
    }
    location /api/ {
        proxy_pass http://127.0.0.1:3000/; # 反向代理
    }
}

含义:根路径返回静态页面;/api/ 转发给本机 3000 端口的应用。

总结:Nginx 站在最前面,负责接流量、发静态、转后端、做负载和 HTTPS。

二、企业中 Nginx 的使用

企业里 Nginx 几乎总是放在流量入口,很少当“唯一应用服务器”。

一、用法

1. 统一入口 / 反向代理(最常见)

客户端

→ CDN / WAF(可选)

→ Nginx / Ingress(入口)

→ 后端服务(Java / Go / Node / 微服务)

典型职责:

server {
    listen 443 ssl;
    server_name api.company.com;
    location /user/ {
        proxy_pass http://user-service;
    }
    location /order/ {
        proxy_pass http://order-service;
    }
}

2. 静态资源托管

官网、运营页、前端打包产物(dist/)由 Nginx 直接提供:

location / {
    root /data/www/app;
    try_files $uri $uri/ /index.html;
}

3. 负载均衡

后端多实例时,Nginx 做分发:

upstream app_backend {
    least_conn;
    server 10.0.1.11:8080 weight=3;
    server 10.0.1.12:8080 weight=2;
    server 10.0.1.13:8080 backup;
}
server {
    location / {
        proxy_pass http://app_backend;
    }
}

常见算法:round-robin、least_conn、ip_hash(会话粘滞)。

4. HTTPS / 证书终结

企业标配:

5. 灰度 / 蓝绿 / 金丝雀

按 Header、Cookie、IP、百分比切流量:

# 简化示意:带灰度 cookie 的走新版本
if ($cookie_canary = "1") {
    proxy_pass http://app_canary;
}

更复杂场景常配合 OpenResty、Ingress Controller、Service Mesh。

6. API 网关轻量能力

不是完整 API Gateway,但企业常让 Nginx 承担一部分:

7. 与 Kubernetes 结合

8. 内网场景

9. 高可用部署形态

形态说明

主备 + Keepalived

VIP 漂移,单机房常见

多机 + L4(SLB/F5)

云上很常见:SLB → 多台 Nginx

容器化多副本

K8s Deployment + Service

CDN 前置

静态/边缘缓存,源站仍是 Nginx

二、知识体系

按优先级分层,从“能上线”到“能扛事”。

A. 基础必会

1. 进程与架构
2. 配置结构

main
 └─ events
 └─ http
     ├─ upstream
     ├─ map
     └─ server
         └─ location

要清楚:指令作用域(哪些写在 http,哪些只能在 server/location)。

3.server/location匹配规则
4. 反向代理核心

proxy_pass

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;

proxy_connect_timeout

proxy_send_timeout

proxy_read_timeout

proxy_buffering

client_max_body_size

理解:

5. 静态与压缩缓存
6. HTTPS
7. 日志与排障

B. 企业生产进阶(中高级)

8. 负载均衡与健康检查
9. 限流限连与防刷

limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

limit_conn_zone $binary_remote_addr zone=addr:10m;

limit_req zone=api_limit burst=20 nodelay;

limit_conn addr 20;

理解:

10. 安全加固
11. 改写与路由
12. 变量与内部机制
13. 性能调优方向
14. 配置工程化

企业不会手改一台机器的 conf,而是:

C. 架构关联知识(理解“Nginx 在系统中的位置”)

15. 和周边组件怎么分工
组件更擅长Nginx 更擅长

CDN

全球缓存、抗攻击边缘

源站接入、动态反代

SLB/L4

四层转发、高可用

七层路由、TLS、改写

API Gateway

鉴权、计费、协议转换

高性能反代、静态、TLS

WAF

规则防护、Bot

基础限流/IP 控制

Service Mesh

东西向、mTLS、重试

南北向入口

16. 微服务 / K8s 必懂
17. 可观测性

三、按角色看“要学多深”

角色重点

前端

静态部署、try_files、缓存、gzip、HTTPS、CORS、代理到本地/测试环境

后端开发

反代头、超时、上传大小、WebSocket、路径改写、502/504 排查

运维 / SRE

全套:HA、性能、安全、日志指标、配置发布、排障

架构师

入口分层、与 CDN/网关/Mesh 边界、多活与灰度流量策略

四、建议学习路径(可执行)

  1. 本地搭一台:静态站 + 反代一个后端
  2. 刻意练匹配:多个 server_name / location,搞清谁命中
  3. 上 HTTPS + 日志:自己看 access/error 定位问题
  4. 加 upstream + 限流:模拟一台挂掉、突发流量
  5. 做一份生产 checklist:超时、body 大小、真实 IP、keepalive、安全头
  6. 再学 Ingress / OpenResty:对应云原生或复杂网关需求

五、企业生产配置 Checklist

上线前至少确认:

  1. nginx -t 通过,reload 无损
  2. HTTPS 证书链完整,HTTP 自动跳转正确
  3. Host / X-Forwarded-* / 真实 IP 正确
  4. client_max_body_size 与业务上传一致
  5. proxy_read_timeout 覆盖最长接口
  6. 上游 keepalive 已开
  7. 限流与连接数有兜底
  8. 日志含 request id、上游状态与耗时
  9. 隐藏版本、禁敏感路径
  10. 502/504 有监控告警与扩容/摘除预案

总结

企业用 Nginx,本质是“流量入口与流量治理”:反代、TLS、静态、负载、限流、日志;
要掌握的核心,是配置模型 + 反代细节 + 匹配规则 + 超时/头/真实 IP + 安全限流 + 排障与高可用,而不是背一堆指令。

三、Nginx 运维 / SRE 版知识点清单

面向:日常接流量、排障、变更、保可用性。

SRE 视角下 Nginx 的定位:

每天真正在管的是:

  1. 入口是否可用(VIP / SLB / Ingress 后面的 Nginx)
  2. 流量是否按预期路由(域名、路径、灰度)
  3. 后端是否被正确保护(超时、限流、隔离)
  4. 出了问题能否 5 分钟内定位(日志、指标、配置差量)

核心不是“会写 conf”,而是:变更可控、故障可观测、回滚可快速。

场景 A:新站点 / 新域名上线

会做的事

必会知识点

验收标准

场景 B:反代后端 API / 微服务

日常问题

必会知识点:

proxy_http_version 1.1;
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;
proxy_set_header Connection "";
proxy_connect_timeout 3s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
client_max_body_size 50m;

还要懂:

排障抓手

场景 C:负载均衡与摘流

日常操作

必会知识点

SRE 原则

场景 D:静态资源 / 前端发布

日常操作

必会知识点

场景 E:HTTPS / 证书生命周期

日常操作

必会知识点

事故高发点

到此这篇关于Nginx的概述和使用清单的文章就介绍到这了,更多相关nginx介绍和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文