人工智能

搞定 Nginx 配置!反向代理、HTTPS、缓存优化一篇就够了

时间:2010-12-5 17:23:32  作者:物联网   来源:网络安全  查看:  评论:0
内容摘要:Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于 Web 服务、负载均衡和 API 网关等场景。本文将详细介绍 Nginx 的常用配置,涵盖基本配置、静态资源服务、反向代理、负载均衡

Nginx 是搞定一款高性能的 HTTP 和反向代理服务器  ,广泛应用于 Web 服务 、配篇够负载均衡和 API 网关等场景  。置反

本文将详细介绍 Nginx 的向代常用配置,涵盖基本配置 、缓存静态资源服务  、优化反向代理 、搞定负载均衡 、配篇够HTTPS 配置、置反缓存优化等内容 ,向代帮助读者快速掌握 Nginx 的免费模板缓存核心功能 。

一、优化Nginx 基础配置

Nginx 的搞定核心配置文件通常位于 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf ,其结构主要分为 :

全局块(main):影响 Nginx 整体运行的配篇够配置(如 worker 进程数 、日志路径等) 。置反events 块:配置网络连接相关参数(如最大并发连接数) 。http 块:定义 HTTP 服务器行为(如虚拟主机、反向代理等) 。

全局配置示例 :

复制user nginx; # 运行 Nginx 的用户 worker_processes auto; # 自动匹配 CPU 核心数 error_log /var/log/nginx/error.log warn; # 错误日志路径 pid /var/run/nginx.pid; # 进程 PID 文件位置 events { worker_connections 1024; # 每个 worker 进程的最大连接数 use epoll; # 使用 epoll 高效事件模型(Linux) }1.2.3.4.5.6.7.8.9.10.

二 、模板下载静态文件服务

Nginx 常用于托管静态资源(HTML、CSS  、JS 、图片等) ,配置简单且高效。

1. 基础静态服务器配置 复制http { server { listen 80; # 监听 80 端口 server_name example.com; # 域名或 IP location / { root /var/www/html; # 静态文件根目录 index index.html; # 默认首页 } # 单独配置图片缓存 location ~* \.(jpg|png|gif)$ { root /var/www/images; expires 30d; # 客户端缓存 30 天 } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19. root :指定静态文件根目录 。index:定义默认访问文件 。expires:设置浏览器缓存时间,减少服务器负载。

三 、反向代理配置

Nginx 可作为反向代理 ,将请求转发到后端服务器(如 Tomcat 、Node.js 、建站模板Python 应用等) 。

1. 基本反向代理 复制server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; # 转发到本机 8080 端口 proxy_set_header Host $host; # 传递原始 Host 头 proxy_set_header X-Real-IP $remote_addr; # 传递客户端 IP } }1.2.3.4.5.6.7.8.9.10.11. proxy_pass :指定后端服务器地址。proxy_set_header :设置 HTTP 请求头 ,确保后端获取真实客户端信息。2. 负载均衡

Nginx 可分配请求到多个后端服务器 ,提高系统可用性。

复制http { upstream backend { server 192.168.1.100:8080 weight=3; # 权重 3,处理更多请求 server 192.168.1.101:8080; server 192.168.1.102:8080 backup; # 备用服务器 } server { listen 80; server_name app.example.com; location / { proxy_pass http://backend; # 代理到 upstream proxy_next_upstream error timeout http_500; # 故障转移策略 } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19. upstream:定义后端服务器组,支持 weight(权重)、backup(备用)等参数。proxy_next_upstream  :定义何种情况下切换服务器(如超时、500 错误)。

四 、香港云服务器HTTPS 安全配置

Nginx 支持 SSL/TLS 配置,可用于加密数据传输,提高安全性。

1. 基本 HTTPS 配置 复制server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 优化 SSL 性能 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { root /var/www/html; index index.html; } } # HTTP 强制跳转 HTTPS server { listen 80; server_name example.com; return 301 https://$host$request_uri; }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30. ssl_certificate 和 ssl_certificate_key:指定 SSL 证书路径 。ssl_protocols 和 ssl_ciphers:配置加密协议 ,提高安全性 。return 301 :HTTP 请求自动跳转 HTTPS 。

五. 缓存优化

Nginx 可缓存动态内容 ,减少后端压力 ,提高响应速度 。

1. 代理缓存配置 复制http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { listen 80; server_name cache.example.com; location / { proxy_pass http://backend; proxy_cache my_cache; # 启用缓存 proxy_cache_valid 200 302 10m; # 缓存 200/302 响应 10 分钟 proxy_cache_valid 404 1m; # 缓存 404 响应 1 分钟 proxy_cache_key "$scheme$host$request_uri"; # 缓存键 } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18. proxy_cache_path :定义缓存存储路径和大小。proxy_cache_valid :设置不同 HTTP 状态码的缓存时间。源码下载

六 、日志与访问控制

Nginx 可以记录访问日志 ,并限制某些 IP 或请求频率。

1. 访问日志配置 复制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; }1.2.3.4.5.6.7.8. 2. IP 访问限制 复制location /admin { allow 192.168.1.100; # 允许特定 IP deny all; # 拒绝其他所有 IP }1.2.3.4. 3. 限流(Rate Limiting) 复制http { limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; server { location /api { limit_req zone=req_limit burst=20 nodelay; # 每秒 10 请求,允许突发 20 proxy_pass http://backend; } } }1.2.3.4.5.6.7.8.9.10.11.

七 、结语

本文介绍了 Nginx 的常用配置,掌握以后可以灵活运用 Nginx 搭建高性能 Web 服务、API 网关或负载均衡系统。

关于更多高级功能(如 Lua 脚本、动态模块),读者可自行参考 Nginx 官方文档学习 。

亿华云
copyright © 2025 powered by 益强开源技术社区  滇ICP备2023006006号-14sitemap