共享主机很简单,但 VPS 为你提供速度、root 权限,并且没有吵闹的邻居。本指南用 Nginx 带你把全新的 Ubuntu 24.04 或 22.04 服务器变成一个在线的 HTTPS 网站,大约二十分钟。每条命令都可以原样复制。
你需要什么
- 一台至少 1 vCPU 和 1 GB 内存的 VPS(对大多数小型网站来说,我们的基础套餐就足够了)。
- 一个指向服务器 IP 地址的域名(请参阅我们关于将域名指向 VPS 的指南)。
- 以 sudo 用户身份进行 SSH 访问。如果服务器是全新的,请先完成基础加固。
1. 安装 Nginx
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
在浏览器中打开你服务器的 IP 地址。你应该能看到默认的 Nginx 欢迎页面。如果没有,请检查防火墙是否允许 80 和 443 端口:
sudo ufw allow "Nginx Full"
sudo ufw status
2. 创建网站文件夹
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html
全文中的 example.com 请替换为你自己的域名。
3. 添加 server 块
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
启用它,测试配置并重新加载:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4. 用 Let's Encrypt 添加免费 HTTPS
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot 会编辑你的 server 块,把 HTTP 重定向到 HTTPS,并安装一个定时器自动续期证书。用 systemctl list-timers | grep certbot 检查该定时器。
5. 让它更快
为静态文件开启压缩和浏览器缓存。把以下内容添加到 server 块内:
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;
location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
之后重新加载 Nginx。对于 WordPress 等动态网站,请安装 PHP-FPM 并将 .php 请求交给它处理,或在前面加一个缓存插件。
常见问题
- 403 Forbidden:Nginx 无法读取该文件夹。请检查所有权,以及每个上级目录是否可执行(
chmod o+x)。 - Certbot 失败:域名尚未指向服务器,或 80 端口被封锁。
- 仍显示默认页面:删除
/etc/nginx/sites-enabled/default并重新加载。