插件窝 干货文章 Nginx常用功能是什么

Nginx常用功能是什么

Nginx 示例 server 配置 103    来源:    2025-04-23

Nginx 是一款高性能的 Web服务器反向代理服务器负载均衡器,同时也支持邮件代理、缓存加速等多种功能。以下是其核心功能的分类总结:


1. Web服务器(静态资源服务)

  • 高效处理静态文件(HTML、CSS、JS、图片等),性能远超传统服务器(如Apache)。
  • 支持 gzip压缩HTTP/2SSL/TLS(HTTPS)等现代协议。
  • 通过 autoindex 模块实现目录列表展示。

示例配置

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.html;
}

2. 反向代理(Reverse Proxy)

  • 隐藏真实后端服务器,接收客户端请求并转发到内部服务(如Node.js、Tomcat等)。
  • 支持灵活的路径映射和请求头修改。

示例配置

location /api/ {
    proxy_pass http://backend-server:8080/;
    proxy_set_header Host $host;
}

3. 负载均衡(Load Balancing)

  • 分配流量到多个后端服务器,支持算法:
    • 轮询(round-robin)
    • 加权轮询(weighted)
    • IP哈希(ip_hash)(保持会话)
    • 最少连接(least_conn)

示例配置

upstream backend {
    server 192.168.1.101 weight=3;
    server 192.168.1.102;
    server 192.168.1.103 backup;  # 备用服务器
}

server {
    location / {
        proxy_pass http://backend;
    }
}

4. 缓存加速

  • 代理缓存:缓存后端响应,减少重复请求。
  • FastCGI缓存:加速PHP等动态内容。

示例配置

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
    }
}

5. SSL/TLS 终止

  • 集中管理HTTPS证书,解密请求后以HTTP转发给后端,减轻后端压力。
  • 支持 Let's Encrypt 自动续签(配合Certbot工具)。

示例配置

server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    location / {
        proxy_pass http://backend;
    }
}

6. 访问控制与安全

  • IP黑白名单allow/deny 指令。
  • 速率限制:防止DDoS攻击(limit_req 模块)。
  • Basic认证:密码保护目录。

示例配置

location /admin/ {
    allow 192.168.1.0/24;
    deny all;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

7. 日志与监控

  • 访问日志(access_log)错误日志(error_log) 记录。
  • 支持日志格式自定义和按条件过滤。

示例配置

log_format main '$remote_addr - $request_time';
access_log /var/log/nginx/access.log main;

8. 其他高级功能

  • URL重写(rewrite):实现SEO友好链接或重定向。
  • WebSocket代理:支持实时应用。
  • 动静分离:动态请求和静态文件分开处理。
  • 邮件代理(SMTP/IMAP/POP3)。

典型应用场景

  1. 高并发网站:用Nginx处理静态文件,动态请求反向代理到应用服务器。
  2. 微服务网关:通过路径匹配转发到不同后端服务。
  3. CDN边缘节点:缓存静态资源加速访问。

Nginx的灵活性和低资源占用使其成为现代架构的核心组件。根据需求选择合适模块,并通过 nginx -t 测试配置后重启生效(systemctl reload nginx)。