如何将云服务器部署的网站通过网址访问?

将云服务器上的网站通过网址(域名)对外访问,本质上是一个“DNS解析 + 网络连通性 + Web服务配置”的闭环过程。很多新手容易卡在最后一步或者中间的网络环节。

下面我以国内主流云厂商(如阿里云、腾讯云、华为云等)通用的Linux环境(CentOS/Ubuntu)为例,梳理一套标准、合规且可落地的操作流。

核心逻辑概览

  1. 准备域名:拥有一个已备案的域名。
  2. 部署Web服务在服务器上安装Nginx/Apache并启动。
  3. 配置安全组/防火墙:开放80(HTTP)和443(HTTPS)端口。
  4. 域名解析:将域名指向你的服务器公网IP。
  5. 验证访问。

第一步:确保网站程序已部署并运行

假设你使用的是最常见的 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 端口。

  1. 登录你的云厂商控制台(如阿里云ECS控制台、腾讯云CVM控制台)。
  2. 找到你的实例 -> 点击 “安全组” 或 “防火墙” 选项。
  3. 添加一条入方向规则:
    • 协议类型: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控制台):

  1. 找到 “解析设置” 或 “DNS管理”。

  2. 添加一条新记录:

    • 主机记录:@ (代表主域名,如 example.com)
    • 记录类型:A
    • 记录值:填写你的 云服务器公网IP地址
    • TTL:默认即可(通常600秒)
  3. (可选)如果你想用 www.example.com 访问:

    • 主机记录:www
    • 记录类型:A
    • 记录值:同上,填公网IP

技巧:解析生效后,全球生效需要时间(几分钟到几小时不等)。你可以使用命令行工具 ping example.com 来检查是否已经解析到你的IP。


第五步:最终验证

  1. 本地测试:
    在浏览器输入 http://yourdomain.com。

  2. 如果打不开,排查顺序如下:

    • 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 匹配了你的域名。

进阶建议(生产环境必备)

  1. 启用 HTTPS(SSL证书):
    现在浏览器对HTTP站点标记为“不安全”。推荐使用 Let’s Encrypt 免费证书或云厂商提供的免费SSL证书。

    • 安装 Certbot:sudo apt install certbot python3-certbot-nginx
    • 自动配置:sudo certbot --nginx
    • 这会自动修改Nginx配置并重定向HTTP到HTTPS。
  2. 静态资源优化:
    如果网站图片、JS、CSS较多,建议结合 CDN(内容分发网络)提速,减轻服务器带宽压力。

  3. 安全性加固:

    • 禁用 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云枢 » 如何将云服务器部署的网站通过网址访问?