Nginx 反向代理配置与基础使用指南
Nginx 是一个高性能的 Web 服务器和反向代理服务器,广泛用于处理高并发请求、负载均衡和静态文件服务。如果不了解反向代理是什么,可以参考这篇文章。
1. 安装 Nginx
1.1 在 Ubuntu/Debian 上安装
1 | sudo apt update && sudo apt install nginx |
1.2 启动与验证
启动 Nginx 并设置开机自启:
1 | sudo systemctl start nginx |
访问 http://你的服务器IP,若看到 Nginx 欢迎页面,说明安装成功。确保 80 端口未被占用。
2. Nginx 配置文件结构
- 主配置文件:
/etc/nginx/nginx.conf(全局设置,通常无需修改)。 - 站点配置文件:
/etc/nginx/sites-available/(配置文件存放处)和/etc/nginx/sites-enabled/(启用的配置文件软链接)或/etc/nginx/conf.d/(直接启用的配置文件)。
3. 典型使用场景
3.1 静态文件服务
场景:通过 example.com 提供静态文件(如 HTML、CSS)。
配置:
1 | server { |
关键字解释:
listen 80;:监听 80 端口(HTTP 默认端口)。server_name example.com;:处理该域名的请求。root /var/www/html;:静态文件目录。index index.html index.htm;:默认访问的文件顺序。try_files:按顺序尝试查找文件,若都不存在则返回404。
3.2 反向代理
场景:将 example.com 的请求转发到 localhost:8080。
配置:
1 | server { |
关键字解释:
proxy_pass:将请求转发到指定地址。proxy_set_header:传递客户端信息(如真实 IP 和协议)。- 超时配置:防止长时间连接占用资源。
3.3 HTTP 重定向到 HTTPS
场景:强制所有 HTTP 请求跳转到 HTTPS。
配置:
1 | server { |
关键字解释:
return 301:永久重定向到 HTTPS。listen 443 ssl;:启用 HTTPS。ssl_certificate和ssl_certificate_key:指定证书和私钥路径。ssl_protocols和ssl_ciphers:指定加密协议和算法,提高安全性。
3.4 负载均衡
场景:将请求分发到多个后端服务器。
配置:
1 | upstream backend { |
关键字解释:
upstream:定义后端服务器组。least_conn:使用最少连接数算法分配请求。max_fails和fail_timeout:定义失败条件和超时时间。backup:备用服务器,仅在主服务器不可用时使用。health_check:定期检查后端服务器健康状态。
3.5 路径匹配与请求转发
场景:根据不同路径转发到不同服务。
配置:
1 | nginxCopyserver { |
关键字解释:
location /api/:匹配/api/开头的路径。location ~*:使用正则表达式匹配,不区分大小写。expires和add_header:设置缓存控制。
3.6 日志查看
1 | server { |
- 访问日志:
/var/log/nginx/access.log或自定义路径 - 错误日志:
/var/log/nginx/error.log或自定义路径
实时查看:
1 | tail -f /var/log/nginx/access.log |
4. 测试和重载配置
验证配置是否正确:
1 | sudo nginx -t |
重载配置:
1 | sudo systemctl reload nginx |