Nginx 学习笔记

90 阅读2分钟

1. Nginx 概述

  • 定义:高性能 HTTP 和反向代理 Web 服务器,内存占用少,支持高并发场景。

  • 核心优势:高并发处理能力、低资源消耗、丰富的扩展模块、配置灵活。

2. 核心作用

2.1 正向代理 vs 反向代理
  • 正向代理

    • 场景:客户端通过代理服务器访问外部资源(如 VPN),隐藏真实客户端 IP。
    • 特点:代理客户端请求,服务器不知真实客户端。
  • 反向代理

    • 场景:服务器端代理,客户端请求转发到后端真实服务器(如项目部署),隐藏真实服务器 IP。

    • 特点:代理服务器接收请求,转发至后端集群,客户端无感知。

2.2 负载均衡
  • 作用:将请求均匀分发到多个后端服务器,避免单点压力。

  • 内置策略

    • 轮询:默认策略,请求依次分配到各服务器。

    • 加权轮询:按权重(weight)分配,权重越高处理请求越多(适用于性能差异化服务器)。

    • IP Hash:根据客户端 IP 哈希值固定分配到某服务器,保证会话一致性。

2.3 动静分离
  • 原理:分离动态资源(如 JSP、API)和静态资源(如 HTML、CSS、图片)。

  • 优势:静态资源由 Nginx 直接响应,减少后端服务器压力,提升访问速度。

3. 常用命令

Nginx 操作
cd /usr/local/nginx/sbin/          # 进入 Nginx 执行目录  
./nginx                           # 启动 Nginx  
./nginx -s stop                    # 强制停止  
./nginx -s quit                    # 安全退出(处理完当前请求)  
./nginx -s reload                  # 重新加载配置文件  
ps aux|grep nginx                  # 查看 Nginx 进程  
防火墙操作(Linux)
service firewalld start/restart/stop  # 启动/重启/关闭防火墙  
firewall-cmd --list-all               # 查看防火墙规则  
firewall-cmd --query-port=8080/tcp    # 查询端口是否开放  
firewall-cmd --permanent --add-port=80/tcp  # 永久开放端口  
firewall-cmd --reload                # 重启防火墙使配置生效  

4. 配置示例

4.1 连接数配置
event {  
    worker_connections 1024;  # 单个工作进程最大连接数  
}  
4.2 负载均衡 配置
http {  
    upstream backend_servers {  
        server 127.0.0.1:8080 weight=1;  # 服务器 1,权重 1  
        server 127.0.0.1:8081 weight=2;  # 服务器 2,权重 2(处理请求更多)  
    }  

    server {  
        listen 80;  
        server_name localhost;  

        location / {  
            proxy_pass http://backend_servers;  # 请求转发到负载均衡组  
            proxy_set_header Host $host;        # 传递客户端真实 Host  
        }  
    }  
}  

5. 总结

  • 核心功能:反向代理、负载均衡、动静分离,提升应用性能和可用性。
  • 适用场景:高并发 Web 服务、API 网关、静态资源服务器、微服务架构流量转发。
  • 关键优势:轻量级、配置灵活、社区生态丰富,支持插件扩展(如 Lua、SSL 等)。