Nginx的配置与管理
2025-04-14
5
参考资料
Nginx配置与管理详解
基本配置结构
# 主配置文件通常位于 /etc/nginx/nginx.conf user nginx; # 运行Nginx的用户 worker_processes auto; # 工作进程数,auto表示自动设置为CPU核心数 events { worker_connections 1024; # 每个工作进程的最大连接数 } http { include /etc/nginx/mime.types; # 包含MIME类型定义 default_type application/octet-stream; # 默认MIME类型 # 日志格式定义 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; # 错误日志级别 sendfile on; # 启用高效文件传输模式 tcp_nopush on; # 仅在sendfile开启时有效 keepalive_timeout 65; # 保持连接超时时间 gzip on; # 开启Gzip压缩 # 包含其他配置文件 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
虚拟主机配置示例
server { listen 80; # 监听端口 server_name example.com www.example.com; # 域名 root /var/www/example.com; # 网站根目录 index index.html index.htm; # 默认索引文件 location / { try_files $uri $uri/ =404; # 尝试查找文件或目录,否则返回404 } # 静态文件缓存设置 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; access_log off; } # 错误页面配置 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
HTTPS配置示例
server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.com.key; # SSL优化配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 其他配置... }
反向代理配置示例
server { listen 80; server_name app.example.com; location / { proxy_pass http://localhost:3000; # 转发到本地3000端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
负载均衡配置示例
upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com backup; # 备用服务器 # 负载均衡方法 # least_conn; # 最少连接 # ip_hash; # IP哈希 } server { listen 80; server_name load.example.com; location / { proxy_pass http://backend; # 其他代理设置... } }
常用管理命令
测试配置文件语法:
nginx -t
重新加载配置(不中断服务):
nginx -s reload
停止服务:
nginx -s stop
优雅停止(完成当前请求):
nginx -s quit
查看版本信息:
nginx -v
查看编译参数:
nginx -V
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。