目录
一、Nginx 简介
二、核心功能详解
三、关键指令解析
四、性能优化要点
五、常见应用场景
1. 静态资源服务器(Web Server)
server {
listen 80;
server_name example.com;
root /var/www/html; # 静态文件根目录
location / {
index index.html;
}
# 压缩优化
gzip on;
gzip_types text/plain application/json text/css;
}
2. 反向代理(Reverse Proxy)
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://backend_servers; # 转发到后端服务器组
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. 负载均衡(Load Balancing)
upstream backend_servers {
ip_hash; # 会话保持
server 192.168.1.101:8080 weight=3;
server 192.168.1.102:8080;
server 192.168.1.103:8080 backup; # 备用服务器
}
4. SSL/TLS 终止
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://backend_servers;
}
}
5. 动静分离
server {
location /static/ {
alias /data/static/; # 静态资源目录
expires 30d; # 缓存控制
}
location / {
proxy_pass http://app_server; # 动态请求转发
}
}
6. 虚拟主机(Virtual Host)
server {
listen 80;
server_name site1.com;
root /var/www/site1;
}
server {
listen 80;
server_name site2.com;
root /var/www/site2;
}
7. 访问控制
location /admin/ {
allow 192.168.1.0/24; # 允许特定 IP 段
deny all; # 拒绝其他 IP
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd; # 用户认证
}
8. 日志管理
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
}
9. 缓存加速
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; # 缓存有效时间
}
}
10. 热部署与平滑重启
nginx -s reload # 重新加载配置(不中断服务)