系统讲解 Nginx 在生产环境中的部署方式,包括反向代理 Next.js、HTTPS 配置、证书接入以及常见问题排查。
Nginx 是现代 Web 部署中最重要的反向代理服务器之一,广泛用于生产环境的流量入口管理。
本文将从 0 开始讲解如何使用 Nginx 部署 Next.js,并完成 HTTPS、域名绑定以及生产优化配置。
Nginx 是一个高性能 Web 服务器,同时也是反向代理服务器。
它主要作用:
标准架构如下:
用户请求 → Nginx (80/443) → Next.js (3000) → API / DB
sudo apt update sudo apt install nginx -y
检查状态:
systemctl status nginx
Ubuntu 默认结构:
/etc/nginx/
├── sites-available/
├── sites-enabled/
创建配置文件:
sudo nano /etc/nginx/sites-available/web
server { listen 80; server_name weihuijie.com www.weihuijie.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; 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; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
sudo ln -s /etc/nginx/sites-available/web /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
路径:
/etc/nginx/ssl/
文件:
server { listen 80; server_name weihuijie.com www.weihuijie.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name weihuijie.com www.weihuijie.com; ssl_certificate /etc/nginx/ssl/weihuijie.com.crt; ssl_certificate_key /etc/nginx/ssl/weihuijie.com.key; ssl_protocols TLSv1.2 TLSv1.3; location / { proxy_pass http://127.0.0.1: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; } }
原因:默认站点未删除
sudo rm /etc/nginx/sites-enabled/default
原因:Next.js 没启动
pm2 logs
检查路径和权限:
sudo chmod 600 /etc/nginx/ssl/*.key
sudo chown -R ubuntu:ubuntu /var/www/personal-website
gzip on; gzip_types text/plain text/css application/json application/javascript;
location /_next/static/ { expires 1y; add_header Cache-Control "public, immutable"; }
return 301 https://$host$request_uri;
HTTPS (Nginx)
↓
Next.js (PM2)
↓
API / Prisma
↓
Supabase
Nginx 在生产中的核心价值:
Nginx = 生产环境的“流量总入口 + 安全层 + 代理层”
暂无评论,留下第一条声音吧。