一、基础架构与性能优势
二、核心功能详解
1. Web 服务器功能
location /static/ {
root /var/www/html;
expires 30d; # 客户端缓存
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
2. 反向代理
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
}
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# 代理至HTTP后端
proxy_pass http://backend;
}
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
3. 负载均衡
upstream backend_servers {
server 10.0.0.1 weight=3;
server 10.0.0.2;
server 10.0.0.3 backup; # 备用服务器
least_conn;
}
4. 缓存机制
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_valid 200 302 10m; # 缓存200/302状态码10分钟
}
}
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fcgi_cache:10m;
location ~ \.php$ {
fastcgi_cache fcgi_cache;
fastcgi_cache_valid 200 5m;
}
5. 安全特性
location /admin/ {
deny 192.168.1.100;
allow 10.0.0.0/8;
deny all;
}
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
location /api/ {
limit_req zone=req_limit burst=20;
limit_conn conn_limit 5;
}
6. 高级路由与重写
rewrite ^/old-url/(.*)$ /new-url/$1 permanent; # 301重定向
7. 日志与监控
log_format main '$remote_addr - $request_time';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn; # 日志级别为警告及以上
8. 压缩与优化
gzip on;
gzip_types text/plain application/json;
9. 模块化扩展
10. 邮件代理
三、配置与管理
server {
listen 80;
server_name example.com;
# 配置...
}
四、典型应用场景