快速开始:15 分钟搭建网站
从一台干净的机器到可用的带 HTTPS 证书的 nginx 网站:安装、站点目录、域名、防火墙和验证。
更新于 2026年8月23日
场景:全新安装的 Debian 或 Ubuntu、您自己的域名,目标是通过 HTTPS 访问您的页面。所有命令均以 root 身份通过 SSH 执行。
1. 安装 nginx
apt update && apt install -y nginx
systemctl enable --now nginx
在浏览器中打开 http://your-address——您应该会看到一个欢迎页面。如果没有出现,请检查防火墙(第 3 步)。
在 AlmaLinux 上,请使用 dnf 代替 apt;参见 AlmaLinux。
2. 解析域名
在您的域名注册商面板中,添加一条 A 记录,指向“概览”标签页中的机器地址:
example.com. A 203.0.113.10
www.example.com. A 203.0.113.10
检查域名是否解析到正确的地址:
apt install -y dnsutils
dig +short example.com
记录更新需要一分钟到几个小时不等。当 dig 返回旧地址时,您将无法签发证书。
3. 开放端口
apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
先执行
allow OpenSSH,再执行enable。顺序颠倒会切断您的访问,届时只能通过文本控制台登录。
4. 创建站点
mkdir -p /var/www/example.com
echo '<h1>Works</h1>' > /var/www/example.com/index.html
chown -R www-data:www-data /var/www/example.com
/etc/nginx/sites-available/example.com 中的配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
启用并应用:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
nginx -t 是必须执行的:它会在重启前检查配置。如果输出末尾没有 syntax is ok 和 test is successful,请不要重启服务——先修复错误。
5. 签发证书
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot 会要求您输入邮箱,添加 listen 443 ssl 块,并设置 HTTP 重定向。续期会自动配置;您可以这样检查:
certbot renew --dry-run
最常见的问题
| 现象 | 原因 |
|---|---|
| 浏览器无法打开站点 | ufw 中 80 或 443 端口未开放 |
Certbot:Timeout during connect | 域名尚未指向该机器,或 80 端口未开放 |
502 Bad Gateway | nginx 正在代理一个未运行的应用程序——请用 systemctl status 检查您的服务 |
403 Forbidden | 目录没有权限,或缺少 index.html |
| 显示 nginx 默认页面而非您的页面 | /etc/nginx/sites-enabled/default 尚未删除 |
以上任何问题的日志:
tail -n 50 /var/log/nginx/error.log
journalctl -u nginx -n 50 --no-pager
接下来,如果您还没有完成,建议使用第一小时检查清单做好基本安全防护。