确保你有一个可用的Google账号并能绑定信用卡,准备好域名,推荐使用Linux开发机。安装Cloud SDK(gcloud)、Git、SSH 客户端。安装命令(mac/linux):curl https://sdk.cloud.google.com | bash,重启终端后运行gcloud init完成登录和项目选择。
在Cloud Console创建一个新项目(Project),并在“结算”中关联信用卡。打开Cloud Console → IAM & Admin → Create Project。启用结算后,记下项目ID,用gcloud config set project PROJECT_ID设置默认项目。
为了获得最小延迟,选择asia-east1区域(台湾)。启用Compute Engine、Cloud DNS、Cloud SQL、Cloud Monitoring API:gcloud services enable compute.googleapis.com dns.googleapis.com sqladmin.googleapis.com monitoring.googleapis.com。
在Console → Compute Engine → VM instances → Create。地区选择 asia-east1,机型可从 e2-micro 到 e2-medium 起步,镜像选择 Ubuntu 22.04 LTS。勾选“允许HTTP/HTTPS流量”。也可以使用命令:gcloud compute instances create web-1 --zone=asia-east1-b --machine-type=e2-medium --image-family=ubuntu-2204-lts --image-project=ubuntu-os-cloud --tags=http-server,https-server。
为实例分配静态外部IP:gcloud compute addresses create web-ip --region=asia-east1; gcloud compute instances add-access-config web-1 --access-config-name="External NAT" --address=$(gcloud compute addresses describe web-ip --region=asia-east1 --format='get(address)')。确认防火墙允许TCP 22/80/443:gcloud compute firewall-rules create allow-web --allow tcp:22,tcp:80,tcp:443 --target-tags=http-server,https-server。
SSH:gcloud compute ssh web-1 --zone=asia-east1-b。登陆后更新系统并安装:sudo apt update && sudo apt upgrade -y;sudo apt install -y nginx git certbot python3-certbot-nginx ufw。启动并允许防火墙:sudo ufw allow 'Nginx Full'; sudo ufw enable。
常见方法:在服务器上git clone你的仓库到/var/www/your-site,或本地打包用scp/rsync上传:rsync -avz ./dist/ user@YOUR_IP:/var/www/your-site。若使用Docker:安装docker并运行容器,或用docker-compose做多服务编排。
在 /etc/nginx/sites-available 创建配置文件example.com:server{ listen 80; server_name example.com www.example.com; root /var/www/your-site; index index.html index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 保存后 ln -s 到 sites-enabled,sudo nginx -t && sudo systemctl reload nginx。
使用Certbot自动配置Nginx并申请证书:sudo certbot --nginx -d example.com -d www.example.com 按提示完成。检查续期计划:sudo systemctl status certbot.timer 已启用。测试自动续签:sudo certbot renew --dry-run。
在Cloud DNS中新建Managed Zone,记录类型A,名称为 @ 指向你的静态IP。然后在域名注册商处把域名的NS更改为Cloud DNS提供的nameservers。生效可能需要几分钟到数小时,使用dig或nslookup验证:dig A example.com +short。
推荐使用Cloud SQL(托管),在Console创建MySQL或Postgres实例,选择区域asia-east1,启用私有IP并在VM上通过Cloud SQL Proxy连接:下载proxy并运行:./cloud_sql_proxy -instances=PROJECT:asia-east1:INSTANCE=tcp:3306 &。更新应用数据库连接字符串为127.0.0.1:3306。
为重要数据启用Cloud SQL自动备份(每日/保留策略)。为Compute Engine磁盘设置定期快照(Snapshots),或使用镜像(Images)在更新前制作备份:gcloud compute disks snapshot DISK_NAME --zone=asia-east1-b --snapshot-names=snap-YYYYMMDD。
启用Cloud Monitoring与Cloud Logging(Stackdriver),安装Ops Agent以获得主机级监控:sudo bash -c "$(curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh)"; sudo apt update && sudo apt install google-cloud-ops-agent。设置指标报警(CPU、内存、响应时间)并配置邮件或短信通知。
若预期流量波动,使用托管实例组(Managed Instance Group)+负载均衡器(HTTP(S) Load Balancer)和Cloud CDN。创建模板(Instance Template),设置自动扩缩(基于CPU或请求延迟),并在LB上配置HTTPS证书与缓存策略。
使用IAM最小权限原则,开启二步验证,定期更新系统与依赖,关闭不必要端口,使用Fail2ban防爆破。为敏感数据启用KMS加密。定期演练恢复(restore)流程,确保备份可用。
问:我想把网站放在台湾,怎样最大化降低用户访问延迟?
答:选择asia-east1(台湾)区域与最近可用区,使用Cloud CDN缓存静态资源,开启GZIP或Brotli压缩,启用HTTP/2,使用域名的Geo DNS或Anycast LB,若用户分布在全球,可考虑多区域负载均衡与跨区域缓存。
问:我要更新网站代码,如何做到零停机?
答:使用蓝绿部署或滚动更新:部署到新实例组并在负载均衡层切换流量;若单机,先部署到备用目录并测试,再切换Nginx配置或使用symbolic link并reload,配合健康检查与会话无状态设计可实现近乎零停机。
问:在谷歌云台湾运行网站,如何估算费用并避免超支?
答:使用Cloud Pricing Calculator估算Compute、Cloud SQL、Cloud Storage、负载均衡和网络流量成本。设置Billing budget与alerts,选用预留实例或可抢占实例(pe-spot)降低成本,合理配置机器规格与自动缩放以按需付费。