Nginx 部署笔记:静态文件与反向代理
整理 Nginx 站点配置、生效检查和反向代理的基础概念。
阅读设置
- nginx配置文件通常位于/etc/nginx目录下,主要的配置文件是
/etc/nginx/nginx.conf,网站配置通常在/etc/nginx/sites-available/目录里,而需要在/etc/nginx/sites-enabled/目录中创建符号链接来启用它们。如果网站需要添加域名,网站的配置就是要在/etc/nginx/sites-enabled/目录下创建域名独立的配置文件,例如/etc/nginx/sites-available/example.com。 - 修改配置文件
server {
listen 80;
server_name example.com www.example.com; # 请将你的域名替换掉yourdomain.com
return 301 https://$host$request_uri; # 将HTTP请求重定向到HTTPS
}
server {
listen 443 ssl; # 监听443端口并启用SSL
server_name example.com www.example.com; # 请将你的域名替换掉yourdomain.com
# SSL证书配置
ssl_certificate /path/to/your/certificate.crt; # 替换为你的证书文件绝对路径
ssl_certificate_key /path/to/your/private.key; # 替换为你的私钥文件绝对路径
# 推荐的安全增强配置
ssl_protocols TLSv1.2 TLSv1.3; # 使用安全的TLS协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384; # 使用安全的加密套件
ssl_prefer_server_ciphers off;
# 网站根目录和默认文件
root /var/www/html; # 替换为你的网站文件实际存放目录
index index.html index.htm;
# 前端路由配置(重要:用于支持Vue/React等单页应用)
location / {
try_files $uri $uri/ /index.html;
}
# 反向代理配置(将/api开头的请求转发给SpringBoot后端)
location /api/ {
proxy_pass http://localhost:8080; # 确保端口与你的后端应用端口一致
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;
}
# 错误页面配置(可选)
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}
- 使配置文件生效
## 检查当前启用的站点
sudo ls -la /etc/nginx/sites-enabled/
## 创建符号链接,启用你的站点
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
## 禁用默认站点(如果存在)
sudo rm -f /etc/nginx/sites-enabled/default
## 测试配置
sudo nginx -t
## 重新加载Nginx
sudo systemctl reload nginx
## 检查是否生效
sudo netstat -tlnp | grep 443
生效配置与代理信任
sites-available 的文件只有被主配置 include(常通过 sites-enabled 的链接)后才生效。修改前备份,运行 nginx -t 后再 reload。应用不能无条件信任任意来源的 X-Forwarded-For,只信任已配置的反向代理。