最开始的想法是使用google cloud,想在虚拟机中建个文件夹然后huo.loc.cc绑定到这个文件夹,想用这个文件夹做一个简易的个人站点,这样也可以正常解析这个二级域名。

也是从这个需求上求助Gmini,也就有这个站点,有了这篇文章,下面就正式开始记录下当时建站的过程。

要把域名 huo.loc.cc 绑定到特定文件夹,就需要在虚拟机上安装一个 Web 服务器软件(如 Nginx 或 Apache)。我选择的是Nginx,主要是有点熟悉,之前自己折腾时也是以Nginx为主,选择好了Nginx就可以根据访问的域名把请求导向对应的文件夹了。

第一步:准备文件夹和网页内容

首先,你需要通过 SSH 连接到你的虚拟机,创建存放站点的目录并放一个简单的首页。

  1. 创建文件夹
sudo mkdir -p /var/www/my_site
  1. 设置权限(确保 Web 服务器能读取):
sudo chown -R $USER:$USER /var/www/my_site
  1. 新建一个简单的 HTML 文件
echo "<h1>欢迎来到我的个人站点</h1>" > /var/www/my_site/index.html

第二步:安装并配置 Web 服务器 (以 Nginx 为例)

Nginx 是目前最流行、配置最简单的 Web 服务器。

  1. 安装 Nginx
sudo apt update && sudo apt install nginx -y
  1. 配置虚拟主机: 创建一个新的配置文件:
sudo nano /etc/nginx/sites-available/huo.loc.cc
  1. 粘贴以下配置(注意修改 server_nameroot):

    Nginx

    server {
        listen 80;
        server_name huo.loc.cc;
    
        root /var/www/my_site;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  2. 启用配置并重启

sudo ln -s /etc/nginx/sites-available/huo.loc.cc /etc/nginx/sites-enabled/ 
sudo systemctl restart nginx

第三步:在 Google Cloud 控制台开放防火墙

默认情况下,GCP 会拦截外部对虚拟机的访问,你需要手动开启 80 端口。

  1. 进入 Google Cloud Console -> Compute Engine -> 虚拟机实例

  2. 点击你的实例名称,点击“修改”。

  3. 找到“防火墙”部分,勾选 “允许 HTTP 流量”(如果以后要用 HTTPS,也勾选 HTTPS)。

  4. 保存。


第四步:解析域名

你需要去你的域名注册商(提供 loc.cc 服务的平台)后台,添加一条解析记录:

  • 记录类型A

  • 主机记录(Host):@

  • 记录值(Value):你的 Google Cloud 虚拟机外部 IP 地址


第五步:申请SSL证书

在 Nginx 配置好之后,使用 Certbot 申请免费的 Let’s Encrypt 证书是最快也最安全的选择。以下是在 Debian/Ubuntu 系统(Google Cloud 默认常用的系统)上的一键式操作步骤:

1. 安装 Certbot 及其 Nginx 插件

首先需要安装 Certbot 工具,它会自动识别你的 Nginx 配置。

Bash

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

2. 获取并自动配置证书

运行下面的命令,Certbot 会自动修改你的 Nginx 配置文件,添加 SSL 相关的参数,并自动设置 HTTP 到 HTTPS 的跳转。

Bash

sudo certbot --nginx -d huo.loc.cc

执行过程中会遇到几个互动提问:

  1. Email Address: 输入你的邮箱(用于接收证书过期提醒)。

  2. Terms of Service: 输入 A 表示同意。

  3. Marketing Email: 输入 N(拒绝订阅广告)。

  4. Redirect: 如果它询问是否将 HTTP 自动重定向到 HTTPS,建议选择 2 (Redirect)。


3. 验证自动续期

Let’s Encrypt 的证书有效期只有 90 天,但 Certbot 默认会创建一个定期任务(cron job)来自动续期。你可以运行以下命令测试续期流程是否正常:

Bash

sudo certbot renew --dry-run

注意: 只有当你的域名 huo.loc.cc 已经正确解析到该虚拟机的 IP,且 80 端口(HTTP)在 Google Cloud 防火墙中是打开的状态时,上述命令才能执行成功。


证书安装后的变化

完成上述步骤后,Certbot 会修改你之前的 Nginx 配置文件。你可以查看一下:

sudo cat /etc/nginx/sites-available/huo.loc.cc

这样一个最简单的网站就搭建好了