Nginx作为高性能的Web服务器,其核心功能主要体现在以下四大模块:
一、正向代理
主要用于客户端访问外部网络的中转服务。典型配置示例:
nginx
server {
listen 8080;
resolver 8.8.8.8;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
}
}
注:需配合客户端代理设置使用
二、反向代理
核心应用场景是负载均衡与服务隐藏,常见配置:
nginx
upstream backend {
server 10.0.0.1:8000 weight=3;
server 10.0.0.2:8000;
}
server {
location / {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
}
}
支持7种负载策略:轮询、权重、IP哈希等
三、缓存加速
多级缓存配置示例:
nginx
proxy_cache_path /data/cache levels=1:2 keys_zone=my_cache:10m;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_use_stale error timeout;
}
}
缓存维度控制:
- 根据URL、请求参数生成缓存键
- 支持缓存过期时间分级设置
- 可定制缓存清除策略
四、Rewrite引擎
URL重写三要素:
nginx
rewrite ^/old/(.*)$ /new/$1 permanent;
语法结构:
r e w r i t e < r e g e x > < r e p l a c e m e n t > [ f l a g ] ; rewrite\ \ <regex>\ \ <replacement>\ \ [flag]; rewrite <regex> <replacement> [flag];
常用标记说明:
Flag | 作用域 | 执行特点 |
---|---|---|
last | server块 | 重写后继续匹配location |
break | server块 | 立即终止匹配过程 |
redirect | 全局 | 返回302临时重定向 |
permanent | 全局 | 返回301永久重定向 |
典型应用场景:
- 动态URL静态化
- 多域名统一规范化
- A/B测试流量分割
- 灰度发布路径控制
这四大功能模块通过组合使用,可构建高性能的Web服务架构,QPS处理能力可达5万+/秒(取决于硬件配置)。