腾讯云国际代理商:CVM 实操 Ubuntu22.04 Docker 一键部署可公网访问 HTTPS 海外 Web 服务

海外独立站、跨境 API、企业海外官网、SaaS 后台上线时,大量开发者会遇到统一难题:如何快速搭建稳定对公网访问的 Web 服务,同时兼顾网络速度、多层安全防护、长期可维护性与业务扩容能力。 很多新手选用虚拟主机存在性能上限、无法自定义容器环境;自建裸机缺少弹性扩容与官方快照备份;国内云服务器部署海外站点访问延迟高。 本文基于腾讯云国际云服务器(CVM),采用 2026 年主流 Ubuntu22.04 LTS 环境,完整覆盖服务器初始化、双层安全防护、Docker 容器化、Nginx 反向代理、自动续期 HTTPS 证书、故障排查全流程,所有命令可直接复制执行,新手零门槛落地,也可作为技术团队标准化部署模板。

一、为什么选择腾讯云国际云服务器承载海外 Web 业务

面向海外用户的官网、独立站、API 服务、轻量 SaaS,核心诉求集中在网络、弹性、安全、运维四大维度,对比说明如下:

落地方案 海外访问延迟 弹性扩容能力 自定义环境权限 安全防护体系 长期运维成本 适配企业规模
海外虚拟主机 中等,共享带宽 无法自定义扩容容器 受限,禁止底层 Docker 仅基础 WAF,无自主防火墙 基准 100% 个人小型展示站,无复杂业务
自建海外裸机 低 无弹性,硬件固定 完全自主 需自行搭建防火墙、快照 基准 140%,专职运维人力成本高 大型自研团队,有专职运维
腾讯云国际 CVM 低,全球多地域就近节点 一键升降配、弹性带宽、CBS 扩容 完整 root 权限,支持 Docker/K8s 安全组 + UFW 双层防护、自动快照、密钥登录 基准 60%-75% 跨境电商、海外 SaaS、企业官网、初创技术团队

腾讯云国际覆盖东南亚、欧洲、美洲多地域节点,适合搭建:

  • 海外企业官网、品牌展示独立站
  • WordPress、Shopify 镜像类 CMS 站点
  • 前后端分离海外 API 服务
  • Docker 容器化业务、轻量微服务节点
  • 海外产品测试环境、中转后台

二、落地场景目标

在腾讯云国际 CVM(Ubuntu 22.04)部署 Docker Nginx 站点,宿主机 Nginx 反向代理容器服务,全站强制 HTTPS,公网可稳定访问,分层隔离保障安全,后续支持多站点、多容器无缝扩展。 前置条件:域名已完成 A 记录解析至 CVM 公网 IP。

三、基础环境清单

云平台:腾讯云国际
实例产品:CVM 云服务器
操作系统:Ubuntu Server 22.04 LTS
容器:Docker Engine + Docker Compose Plugin
反向代理:宿主机原生 Nginx SSL
证书:Certbot Let’s Encrypt 免费证书

四、步骤 1 创建 CVM 实例,配置安全组最小权限放行

1.1 实例规格选型

轻量官网、后台、API 测试:1 核 2G 基础实例; 高并发独立站、多用户 SaaS:2 核 4G 及以上规格,支持后期一键升降配,搭配 CBS 弹性磁盘扩容存储。

1.2 系统选型

优先 Ubuntu 22.04 LTS:社区文档完善、Docker/Certbot 兼容稳定、5 年长期安全补丁支持,适合生产环境。

1.3 安全组仅放行必要端口(最小权限原则)

仅开放入站 TCP 端口: 22 SSH 远程登录、80 HTTP、443 HTTPS; 业务 3000/8080 等开发端口仅临时放行,正式环境禁止对公网暴露,全部由 Nginx 反向代理转发。

五、步骤 2 SSH 登录服务器,系统初始化加固

ubuntu@服务器公网IP

2.1 系统更新,卸载冲突旧版 Docker

sudo apt update && sudo apt upgrade -y# 卸载系统自带旧版docker.io,避免官方Docker安装冲突sudo apt remove $(dpkg –get-selections docker.io docker-compose docker-compose-v2 podman-docker containerd runc | cut -f1) -ysudo apt install -y curl wget git vim ufw ca-certificates gnupg lsb-release

2.2 设置时区

海外业务面向欧美:UTC 时区;面向东南亚可设置 Asia/Singapore

sudo timedatectl set-timezone UTC

timedatectl# 东南亚时区可选 sudo timedatectl set-timezone Asia/Singapore

2.3 创建运维专用用户,弱化 root 直接操作

sudo adduser deploysudo usermod -aG sudo deploy

2.4 配置 SSH 密钥登录,关闭密码登录(生产安全必备)

本地电脑生成 ed25519 密钥

ssh-keygen -t ed25519 -C “admin@example.com”

上传公钥至服务器 deploy 用户

ssh-copy-id deploy@服务器公网IP

登录验证密钥可用后,编辑 sshd_config 关闭密码登录、限制 root 远程登录

sudo vim /etc/ssh/sshd_config# 修改配置 PasswordAuthentication no、PermitRootLogin nosudo systemctl reload sshd

六、步骤 3 双层防火墙安全配置(云安全组 + 本地 UFW)

云安全组管控公网入口,UFW 做主机内部二次拦截,双重防护。

sudo ufw allow OpenSSHsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enablesudo ufw status

七、步骤 4 安装官方稳定版 Docker + Compose Plugin

7.1 添加 Docker 官方 GPG 密钥与软件源

sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpgecho “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

7.2 安装全套 Docker 组件

sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

7.3 验证安装,免 sudo 操作 Docker

docker –versiondocker compose versionsudo systemctl status docker# 将当前用户加入docker组,无需sudo执行docker命令sudo usermod -aG docker $USER

newgrp docker# 测试容器docker run –rm hello-world

八、步骤 5 Docker Compose 部署业务 Web 容器

容器仅绑定本地 127.0.0.1 端口,禁止直接暴露公网,规避容器漏洞攻击。

8.1 创建项目目录与首页文件

mkdir -p ~/webapp/htmlcd ~/webappcat > ~/webapp/html/index.html <<‘EOF’

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>

<title>Tencent Cloud International CVM Demo Site</title>

</head>

<body>

<h1>Web Service Running on Tencent Cloud International CVM</h1>

<p>Docker + Nginx Reverse Proxy Production Deployment Completed</p>

</body>

</html>

EOF

8.2 编写 compose.yaml,容器仅绑定本地 8080 端口

yaml

services:

web:

image: nginx:stable

container_name: web

restart: unless-stopped

volumes:

– ./html:/usr/share/nginx/html:ro

ports:

– “127.0.0.1:8080:80”

networks:

– app_netnetworks:

app_net:

driver: bridge

8.3 启动容器服务

 

 

docker compose up -ddocker compose ps

九、步骤 6 宿主机 Nginx 反向代理配置(修复原教程缺失 HTTPS 强制跳转)

9.1 安装并启动 Nginx

sudo apt install -y nginxsudo systemctl enable nginxsudo systemctl start nginxsudo systemctl status nginx

9.2 创建站点配置文件

sudo vim /etc/nginx/sites-available/example.com

完整配置(新增 HTTP 强制 301 跳转 HTTPS、TLS 安全协议)

nginx

server {

listen 80;

listen [::]:80;

server_name example.com www.example.com;

# 全部HTTP请求跳转HTTPS

return 301 https://$host$request_uri;}server {

listen 443 ssl http2;

listen [::]:443 ssl http2;

server_name example.com www.example.com;

client_max_body_size 20m;

ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_http_version 1.1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header Connection “”;

}}

9.3 启用站点配置,校验 Nginx 语法重载

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl reload nginx

十、步骤 7 Certbot 一键申请 HTTPS 证书,自动续期

10.1 安装 Certbot Nginx 插件

sudo apt install -y certbot python3-certbot-nginx

10.2 自动申请证书并写入 Nginx 配置

sudo certbot –nginx -d example.com -d www.example.com –email admin@example.com –agree-tos –no-eff-email

10.3 校验自动续期定时任务(Ubuntu22.04 自动创建 systemd timer)

systemctl list-timers | grep certbotsudo systemctl status certbot.timer# 模拟续期测试,确保无报错sudo certbot renew –dry-run# 查看证书有效期sudo certbot certificates

相关新闻

联系我们

联系我们

电报:@yunshuguoji

邮件:yunshuguoji@outlook.com

工作时间:早上8:00-晚上11:00

认准电报
认准电报
分享本页
返回顶部