使用 Nginx 部署静态网站:从零到 HTTPS
静态网站(纯 HTML/CSS/JS)是最容易上线的站点形态:无需应用进程、资源占用低、安全性好。本文记录在 Ubuntu 服务器上使用 Nginx 部署静态站点的完整流程,并配置 HTTPS。
1. 准备站点目录
约定把站点文件放在 /var/www/lightstack,并保证 Nginx 运行用户 www-data 有读取权限:
sudo mkdir -p /var/www/lightstack sudo cp -r /本地/站点文件/* /var/www/lightstack/ sudo chown -R www-data:www-data /var/www/lightstack
2. 编写虚拟主机配置
在 /etc/nginx/sites-available/ 下新建配置文件,并软链到 sites-enabled:
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
root /var/www/lightstack;
index index.html;
# 压缩传输
gzip on;
gzip_types text/css application/javascript image/svg+xml;
# 静态资源缓存
location ~* \.(css|js|svg|png|jpg|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
}
sudo ln -s /etc/nginx/sites-available/lightstack /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
提示:nginx -t 用于语法检查,通过后再 reload,避免中断线上服务。
3. 申请 HTTPS 证书
推荐使用 acme.sh 或 Certbot 申请免费证书。以 Certbot 为例:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d www.example.com -d example.com
Certbot 会自动改写 Nginx 配置并开启 80 到 443 的跳转。完成后可用 SSL Labs 检查评级。
4. 常见问题
| 现象 | 排查思路 |
|---|---|
| 域名访问 403 | 检查目录权限与 index 配置 |
| 证书续期失败 | 确认 80 端口外网可达,DNS 解析正确 |
| 改配置后不生效 | 执行 nginx -t 后 reload,勿直接 restart |
小结
静态站部署的关键就三步:放好文件 → 写好虚拟主机 → 开启 HTTPS。建议把配置文件纳入 Git 管理,变更可回溯,排错更高效。