为什么 Nginx 值得单独进阶
前面部署 Python 后端时我们已经用 Nginx 做过一次反向代理,但那只是入门。真正把它用好,能在一台雨云云服务器上用一个 80/443 端口托管多个域名、统一上 HTTPS、给静态资源加缓存让网站快一倍。本文把这几件事一次讲清。
一、准备与购买
反代多个站点对配置要求不高,1 核 2G 足够小流量跑几个站。系统 Ubuntu 22.04,装好 Nginx(sudo apt install -y nginx)。购买走 雨云专属入口 jiyueip.com/link/5617 填优惠码 admin01 五折。国内节点对外提供网页服务须先完成 ICP 备案。
二、免费 SSL 证书与 HTTPS
用 Let’s Encrypt 免费证书最省事:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your.domain.com按提示填邮箱、同意条款,证书会自动签发并写入 Nginx 配置,访问 https 就绿了。证书 90 天有效,certbot 默认装了自动续期任务,不用手动管。
三、一台机器托管多个站点
在 /etc/nginx/sites-available/ 下为每个域名建一个配置文件,都监听 80/443,用 server_name 区分。每个站反代到不同本地端口:
server {
listen 443 ssl;
server_name a.com;
location / { proxy_pass http://127.0.0.1:8000; }
}
server {
listen 443 ssl;
server_name b.com;
location / { proxy_pass http://127.0.0.1:8001; }
}软链到 sites-enabled,nginx -t 检查语法后 systemctl reload nginx,两个域名就分别生效了。
四、缓存与 Gzip 提速
给图片、CSS、JS 等静态资源加缓存头,浏览器和 CDN 就不用反复拉:
location ~* .(jpg|css|js|png)$ {
expires 30d;
add_header Cache-Control "public";
}
开启 Gzip:在 http 段加 gzip on; gzip_types text/css application/javascript;,传输体积能小一半。注意只压缩文本类,图片视频本身就压过别重复压。
五、常见问题
- 证书续期失败:多半是域名没解析到这台服务器或 80 端口被挡,先确认 DNS 和安全组。
- 多个站串了:检查 server_name 是否写错,Nginx 会按匹配度选,默认落到第一个。
- 反代后拿不到真实 IP:加 proxy_set_header X-Real-IP $remote_addr; 并在后端读取该头。
合规使用提醒
Nginx 配置仅用于你合法拥有和备案的域名与站点。不得利用多站点反代搭建违法违规内容分发或绕过监管的服务。HTTPS 证书用于保护传输安全,请合规使用加密技术。






