将云服务器上的网站通过网址(域名)对外访问,本质上是一个“DNS解析 + 网络连通性 + Web服务配置”的闭环过程。很多新手容易卡在最后一步或者中间的网络环节。
下面我以国内主流云厂商(如阿里云、腾讯云、华为云等)通用的Linux环境(CentOS/Ubuntu)为例,梳理一套标准、合规且可落地的操作流。
核心逻辑概览
- 准备域名:拥有一个已备案的域名。
- 部署Web服务在服务器上安装Nginx/Apache并启动。
- 配置安全组/防火墙:开放80(HTTP)和443(HTTPS)端口。
- 域名解析:将域名指向你的服务器公网IP。
- 验证访问。
第一步:确保网站程序已部署并运行
假设你使用的是最常见的 Nginx(轻量、高性能,国内最流行)。如果你用的是Apache或Tomcat,原理类似,只需调整对应的服务命令。
1. 安装 Nginx
以 Ubuntu 为例:
sudo apt update
sudo apt install nginx -y
以 CentOS 为例:
sudo yum install epel-release
sudo yum install nginx -y
2. 放置网页文件
通常默认路径是 /var/www/html 或 /usr/share/nginx/html。
你可以上传一个测试用的 index.html 文件到这个目录,内容随便写点东西,比如 "Hello World"。
3. 启动服务并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
检查状态是否正常:
sudo systemctl status nginx
注意:此时你可以通过
http://<服务器公网IP>直接访问看看是否能看到网页。如果能看到,说明Web服务本身没问题,问题出在网络或解析上。
第二步:配置云厂商的安全组(关键!90%的新手卡在这里)
云服务器默认不开放所有端口。你需要在云控制台手动放行 80 和 443 端口。
- 登录你的云厂商控制台(如阿里云ECS控制台、腾讯云CVM控制台)。
- 找到你的实例 -> 点击 “安全组” 或 “防火墙” 选项。
- 添加一条入方向规则:
- 协议类型:TCP
- 端口范围:80, 443 (如果是开发调试,有时也开22用于SSH,但生产环境务必限制IP)
- 授权对象:
0.0.0.0/0(表示允许所有IP访问) - 策略:允许
合规提示:不要随意开放高危端口(如3306数据库端口、6379 Redis端口等)到公网,除非你有明确的白名单需求,否则极易被扫描攻击。
第三步:服务器内部防火墙配置(iptables/firewalld/ufw)
即使云厂商的安全组放行了,服务器内部的操作系统防火墙也可能拦截请求。
-
Ubuntu (UFW):
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload -
CentOS 7+ (Firewalld):
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
第四步:域名备案与解析(国内特有流程)
在中国大陆地区,未备案的域名无法绑定到中国大陆节点的云服务器,且会被阻断访问。这是工信部规定,必须遵守。
1. 域名备案
- 如果你的域名是新买的,通常在购买域名的平台(如阿里云万网、腾讯云DNSPod)会有“ICP代备案”入口。
- 提交主体资料(个人X_X/企业营业执照)、网站信息。
- 审核周期通常为 7-20个工作日。
- 重要:只有拿到备案号后,才能进行下一步的解析。部分云厂商在未备案状态下会禁止你添加A记录指向其IP。
2. 域名解析(DNS A记录)
备案通过后,去域名管理后台(DNS控制台):
-
找到 “解析设置” 或 “DNS管理”。
-
添加一条新记录:
- 主机记录:
@(代表主域名,如example.com) - 记录类型:
A - 记录值:填写你的 云服务器公网IP地址
- TTL:默认即可(通常600秒)
- 主机记录:
-
(可选)如果你想用
www.example.com访问:- 主机记录:
www - 记录类型:
A - 记录值:同上,填公网IP
- 主机记录:
技巧:解析生效后,全球生效需要时间(几分钟到几小时不等)。你可以使用命令行工具
ping example.com来检查是否已经解析到你的IP。
第五步:最终验证
-
本地测试:
在浏览器输入http://yourdomain.com。 -
如果打不开,排查顺序如下:
- Ping 域名,看解析出的IP是否正确?
- Telnet 域名 80端口,看是否通?
telnet yourdomain.com 80 - 检查服务器日志:
tail -f /var/log/nginx/error.log看是否有报错。 - 检查Nginx配置文件
/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,确保server_name匹配了你的域名。
进阶建议(生产环境必备)
-
启用 HTTPS(SSL证书):
现在浏览器对HTTP站点标记为“不安全”。推荐使用 Let’s Encrypt 免费证书或云厂商提供的免费SSL证书。- 安装 Certbot:
sudo apt install certbot python3-certbot-nginx - 自动配置:
sudo certbot --nginx - 这会自动修改Nginx配置并重定向HTTP到HTTPS。
- 安装 Certbot:
-
静态资源优化:
如果网站图片、JS、CSS较多,建议结合 CDN(内容分发网络)提速,减轻服务器带宽压力。 -
安全性加固:
- 禁用 root 远程登录。
- 使用密钥对 SSH 登录,而非密码。
- 定期更新系统补丁。
总结流程图
graph LR
A[拥有域名] --> B[完成ICP备案]
B --> C[获取服务器公网IP]
C --> D[在服务器安装Nginx/Apache]
D --> E[上传网站代码]
E --> F[云控制台开启80/443端口]
F --> G[服务器内部防火墙放行80/443]
G --> H[域名DNS添加A记录指向IP]
H --> I[等待DNS生效]
I --> J[浏览器访问域名]
按照以上步骤操作,基本可以解决95%以上的“域名访问不通”问题。如果遇到具体报错,请提供错误代码(如 403, 404, 502, Connection Timeout),以便进一步精准定位。
CLOUD云枢