LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Nginx 配置全攻略:从零开始,30分钟掌握核心指令与配置逻辑

admin
2025年8月16日 8:23 本文热度 128

01
一句话读懂 Nginx

把 Nginx 想象成商场里最会看人的金牌导购,顾客(用户)只需说“我要买 X”,导购(Nginx)立刻把他领到最合适的店(后端服务)。

更牛的是,这位导购还能防黄牛(防攻击)、查库存(健康检查)、给 VIP 插队(权重分流),一人顶一队,堪称“全能管家”。

02
配置语法冷启动

一行行带你拆解最常用指令

2.1 最小可运行配置

# /etc/nginx/nginx.conf
user  nginx;                       # **进程身份**:用 nginx 用户启动,安全隔离
worker_processes  auto;            # **CPU 亲和**:有几核就起几个工作进程

events {
    worker_connections1024;      # **并发上限**:单进程最大 1024 条连接
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    # 性能三连
    sendfile        on;            # **零拷贝**内核直发文件,省 CPU
    tcp_nopush      on;            # **包合并**攒一波再发,省带宽
    keepalive_timeout65;         # **长连接**65 秒内复用 TCP

    # 日志双生花
    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    # Gzip 压缩
    gzipon;
    gzip_types text/plain text/css application/json;

    # 虚拟主机示例
    server {
        listen       80;
        server_name  example.com;

        location / {
            root   /var/www/html;
            index  index.html;
        }
    }
}

注解:

  1. 1. user 与 worker_processes 决定安全与性能基线。
  2. 2. sendfile + tcp_nopush 是静态资源大杀器。
  3. 3. keepalive_timeout 让短连接变“长情”,减少握手开销。

2.2 HTTPS 一键升级(含 TLS1.3)

server {
    listen 443 ssl http2;                       # **HTTP2** + **TLS**
    server_name example.com;

    ssl_certificate      /etc/ssl/certs/server.crt;
    ssl_certificate_key  /etc/ssl/private/server.key;

    # 只放行当代密码套件
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;               # **服务器说了算**
}

注解:

  1. 1. http2 让多路复用起飞,同域名资源并行下载。
  2. 2. TLS1.3 砍掉历史包袱,握手往返从 2-RTT 缩到 1-RTT。
  3. 3. 指定 ciphers 避免出现“弱鸡”加密算法。

2.3 反向代理 + 缓存组合拳

# 1. 先声明缓存区
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

server {
    listen80;
    server_name api.example.com;

    # 2. 正式开缓存
    location / {
        proxy_pass         http://backend_cluster;
        proxy_cache        my_cache;               # **缓存名字叫 my_cache**
        proxy_cache_valid20030210m;            # **10 分钟快乐缓存**
        proxy_cache_key    $scheme$host$request_uri;# **缓存键值**,防止串味
    }
}

注解:

  1. 1. levels=1:2 把 1 万文件散到两级目录,避免 inode 爆表。
  2. 2. inactive=60m 60 分钟没人访问就踢出缓存。
  3. 3. proxy_cache_key 决定哪些参数参与缓存命中,务必包含核心变量。

03
负载均衡全攻略

:让流量像坐过山车一样丝滑

3.1 轮询 vs 加权 vs IP 哈希

策略
配置关键字
场景一句话总结
轮询
默认不写
人人平等
,请求均摊
加权轮询
weight=高配多劳
,高配机器扛大头
IP 哈希
ip_hash;粘人精
,同一 IP 落到同机
最少连接
least_conn;能者多劳
,谁闲谁上

3.2 真·实战配置(含健康检查)

upstream web_app {
    least_conn;                             # **谁闲谁上**
    server10.0.0.1:8080 weight=3 max_fails=3 fail_timeout=30s;
    server10.0.0.2:8080 weight=1;
    server10.0.0.3:8080 backup;            # **备胎机**,主全挂才启用
    keepalive32;                           # **32 条长连接**复用
}

server {
    listen80;
    server_name app.example.com;

    location / {
        proxy_pass         http://web_app;
        proxy_http_version1.1;
        proxy_set_header Connection "";      # **长连接标配**
        proxy_connect_timeout2s;
        proxy_read_timeout    5s;
    }
}

注解:

  1. 1. backup 让 10.0.0.3 平时摸鱼,关键时刻救命。
  2. 2. keepalive 32 与 HTTP1.1 长连接搭配,减少握手风暴。
  3. 3. max_fails + fail_timeout 自动拉黑“假死”节点,30 秒后给复活机会。

3.3 灰度发布:权重“温水煮青蛙”

upstream canary {
    server 10.0.0.10:8080 weight=9;   # **老版本**
    server 10.0.0.11:8080 weight=1;   # **新版本**,先放 10% 流量
}

注解:

  1. 1. 通过 weight 逐步上调,肉眼无感完成版本切换。
  2. 2. 出问题秒切回 weight=0零回滚时间。

3.4 日志“显微镜”:一眼定位慢节点

log_format upstream_log '$remote_addr [$time_local] '
                        'up_addr=$upstream_addr status=$status '
                        'rt=$request_time u_rt=$upstream_response_time';

access_log /var/log/nginx/lb_access.log upstream_log;

注解:

  1. 1. $upstream_response_time 暴露后端真实耗时。
  2. 2. request_time 减去 upstream_response_time 就能算出 Nginx 自身开销。

结尾

3 行命令检查你的 Nginx 是否健康

nginx -t                  # **语法体检**
ss -tulnp | grep nginx    # **端口监听一览**
curl -I https://example.com | grep server  # **响应头确认**


阅读原文:原文链接


该文章在 2025/8/18 12:36:02 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved