安装 Nginx
sudo apt update
sudo apt install nginx
sudo systemctl enable --now nginx
反向代理配置示例
以代理本地 vLLM 服务(监听 127.0.0.1:8000)为例:
# /etc/nginx/sites-available/api.example.com
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 流式响应(SSE)需要关闭缓冲
proxy_buffering off;
proxy_read_timeout 300s;
}
}
sudo ln -s /etc/nginx/sites-available/api.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
使用 Let’s Encrypt 签发 HTTPS 证书
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d api.example.com
certbot 会自动修改配置文件,添加 443 端口监听与证书路径,并配置 HTTP 到 HTTPS 的重定向。证书默认 90 天有效期,certbot 会自动注册续期任务,可通过以下命令验证:
sudo certbot renew --dry-run
基础限流配置
保护后端推理服务,避免单一来源占满并发:
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=5r/s;
server {
location / {
limit_req zone=api_limit burst=10 nodelay;
proxy_pass http://127.0.0.1:8000;
}
}
Hugo 静态站点的配置示例
server {
listen 443 ssl;
server_name blog.example.com;
root /var/www/blog/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem;
}
小结
无论是代理 AI 推理接口还是托管 Hugo 静态站点,Nginx + Let’s Encrypt 都是低成本且成熟稳定的组合,配合限流与合理的超时设置即可满足大多数个人和小团队场景。