微信扫码,获取更多

网站打开只要0.xxx秒!EdgeOne免费套餐,令我1h1g服务器搭建的WordPress网站既快又安全还耐打

通过之前的设置与优化,我们的WordPress个人网站打开速度已经很快,也相对安全,能抗一定力度的网络攻击了。

anjir.top网站 全国节点测速图

如果还想有大的提升,那就得加钱了。可咱的初心就是为了网站能长久运营,要尽可能的节约成本,加钱?那是不可能的!好在近期腾讯EdgeOne活动挺给力的,推出了完全免费的安全加速套餐,提供不计量的 CDN 流量和 DDoS 防护,开放全球节点(包含中国大陆)。这不花钱还能提升网站性能的服务,必须得用呀!

要是在过去,大部分个人站长都不会给网站上CDN服务的,原因不单单是贵,而是这东西用了的话,一不小心就会“破产”!搜索“CDN流量被刷”,能找到不少网站被刷流量导致CDN欠费的例子。EdgeOne免费版最大的优点就是提供不计量的 CDN 流量,不管消耗了多少CDN流量,都不需要站长支付一分钱,这简直是在向“赛博菩萨”Cloudflare看齐。可惜Cloudflare免费版在中国大陆没有节点,不做IP优选的话,对于面向国内用户的网站来说就是“减速器”,而EdgeOne免费版提供了包含中国大陆的全球节点,更适合中国宝宝体质,让国内用户访问更快!

对于那些服务器配置很高的网站来说,EdgeOne不过是锦上添花,让用户访问网页更快些。可对于咱们这种用1h1g服务器搭建WordPress个人网站的站长来说,简直是鸟枪换炮!把网站上大部分内容给EdgeOne缓存上,用户访问的内容将主要由EO提供,我们的服务器负载将变得非常低。腾讯的这一善举,相信会极大地提升国内站长的建站热情!

本篇文章将详细记录使用EdgeOne免费套餐,对我的个人网站:anjir.top,优化与加速的过程。


如何获得EdgeOne免费套餐?

EdgeOne分国内站和国外站,绝大多数站长都是EO国内站用户,所以本文只考虑国内站用户会遇到的情景。国内站用户可通过兑换码获得免费套餐,兑换码获取方式如下:

方式一:参与免费套餐兑换码抽奖活动,活动页面:https://cloud.tencent.com/act/pro/eo-freeplan

方式二:EdgeOne 产品当前和国内部分KOL有合作,腾讯云开发者社区、B站、小红书等搜索关键词“EdgeOne”,找有兑换码的KOL获取

获取兑换码后,打开兑换页面:https://console.cloud.tencent.com/edgeone/package?cn_free_redeem=true,完成兑换即可。

如果你有多个域名,想获取多个EdgeOne免费套餐,可以先9.9元开1个月个人套餐,等个人版到期后,会自动降级为永久免费套餐。(截止本文发布时,该方法还有效,不保证未来一直有效)


给我们的网站配置EdgeOne免费套餐

在开始操作前,我们先理解一下接下来会发生什么:

  1. 流量路径的改变:

  • 之前: 访客 -> 我的服务器 (anjir.top)

  • 之后: 访客 -> EdgeOne 全球节点 -> 我的服务器

  • 谁是“源站”?: 咱的那台 1核1G 的服务器,现在变成了 “源站”。EdgeOne 会从咱的源站拉取内容,然后缓存到离访客最近的节点上,再分发给访客。

  • SSL 证书的变化:

    • 之前: SSL 证书由咱服务器上的 Certbot (Let’s Encrypt) 负责。访客浏览器看到的是 Let’s Encrypt 颁发的证书。

    • 之后: EdgeOne 会自动为咱免费签发和管理 SSL 证书。访客浏览器看到的将是 EdgeOne 提供的证书。我们服务器上的 Let’s Encrypt 证书依然非常重要,它负责加密 EdgeOne 节点和咱源站之间的通信。

    第一步:在 EdgeOne 控制台添加我们的站点和域名解析到EO

    1. 登录腾讯云控制台,搜索并进入“边缘安全加速平台 EdgeOne”(或者直接打开链接进入:https://console.cloud.tencent.com/edgeone/zones)。

    2. 点击“服务总览”,然后点击“新增站点”。

    3. 输入你的域名: 在输入框中,输入我们的域名 anjir.top,然后点击“开始接入”。

    4. 选择套餐: 选择“免费版”,然后点击“下一步”。

    5. 选择接入模式和加速区域,完成归属权验证:

    • 选择加速区域:全球可用区(域名必须先完成 ICP 备案)

    • 选择接入模式:CNAME接入

    • 然后点击“下一步”

    • 使用 DNS 解析验证,参考“配置指引”,完成归属权验证,然后自动跳转到“域名管理”

  • “域名管理”-“添加域名”,完成源站配置:

    • 这是最关键的一步。我们需要告诉 EdgeOne,当它需要获取内容时,应该去哪里找。

    • 域名配置: 加速域名填:@,IPv6 访问选择“开启”。

    • 源站配置: 输入你服务器的 公网 IP 地址

    • 回源协议HTTPS(这确保了 EdgeOne 和您源站之间的通信是加密的)。

    • 回源端口443(因为我们是 HTTPS 网站)。

    • 回源HOST 头: 保持默认的 使用加速域名

    • 推荐模版(可选): 不使用模版。

    • 点击“下一步”。

  • 为anjir.top、www.anjir.top添加 CNAME 记录。参考“配置指引”,删除之前的A解析,将我们的anjir.top网站cname解析到EdgeOne提供的记录值。同样的,www.anjir.top也参考前面那些步骤完成解析。最后点击“完成”。

  • 待部署完成,状态显示“已生效”后,HTTPS 配置,“编辑”-“HTTPS 证书配置”-“申请免费证书”-“确认”,然后等待几分钟,待HTTPS 配置显示:已配置,状态:已生效。

  • 第二步:修复“真实客户端 IP”问题

    我们的网站使用了Fail2ban进行安全防护,它通过监控日志文件自动识别并封禁恶意IP。经过我们的配置后,所有流量都通过 EdgeOne 转发,在 Nginx access.log 日志里,记录的客户端 IP 将全部变成 EdgeOne 的节点 IP,这将导致 Fail2ban 的防护失效!

    为了避免Fail2ban防护失效,我们需要让 Nginx 能够“看穿”EdgeOne,记录下访客的真实 IP。

    1. 编辑 Nginx 主配置文件 nginx.conf:
    nano /root/my_website/nginx/main-conf/nginx.conf
    1. 在 http 块内,添加 real_ip 相关指令
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        # ======== 添加以下内容 ========
        # 信任所有来自 EdgeOne 节点的请求
        # EdgeOne 的 IP 段列表会更新,我们需要动态获取
        set_real_ip_from 0.0.0.0/0; # 简单起见,可以先信任所有来源,后面再改

        # 告诉 Nginx 从哪个头信息中获取真实 IP
        # EdgeOne 使用 X-Forwarded-For
        real_ip_header     X-Forwarded-For;
        real_ip_recursive on;
        # ============================

        # ...
    }
    1. 重启 Nginx 容器:
    docker compose up -d --force-recreate nginx

    第三步:隐藏源站IP,防止黑客绕过EdgeOne攻击源站

    为什么要隐藏源站 IP?我们来回顾一下流量路径:
    访客 -> EdgeOne (防火墙+加速) -> 我们的源站服务器

    我们所有的安全策略(WAF、DDoS防护、速率限制)都部署在了 EdgeOne 这个“大门口”。如果攻击者绕过了 EdgeOne,直接找到了源站服务器的真实 IP 地址,那么:

    1. 所有 EdgeOne 防护都将失效: 攻击者可以直接向我们的真实 IP 发起 DDoS 攻击、Web 攻击、暴力破解。

    2. 服务器将被打回原形: 再次变回那个暴露在公网上的、需要依靠自身 Fail2ban 和 Nginx 限流来苦苦支撑的 1核1G 小服务器。

    3. 我们的努力都将付之东流: 接入 EdgeOne 带来的最大安全优势将荡然无存。

    隐藏源站 IP,就是为了确保所有流量都必须经过 EdgeOne 这个“安检口”,强制所有人都从大门进,堵死所有可以翻窗的小路。

    如何隐藏源站 IP?

    核心思路:配置我们服务器的防火墙,只允许来自 EdgeOne 官方 IP 段的流量访问我们的网站端口(80/443),拒绝所有其他 IP 的直接访问。 EdgeOne 官方 IP 段可通过:https://api.edgeone.ai/ips,这个页面获取。

    编写脚本实现隐藏源站 IP

    脚本策略:

    1. 脚本从 https://api.edgeone.ai/ips 页面获取最新的 IP 列表。
    2. 脚本生成一个包含EdgeOne IP的Nginx配置文件:edgeone_real_ip.conf。
    3. 脚本生成一个完整的、包含所有 UFW 规则(包括 SSH、EdgeOne IP 等)的临时规则文件。
    4. 我们用 ufw 命令重置防火墙,并用这个新的规则文件一次性地加载所有规则。

    步骤:

    1. 编辑脚本文件:
    nano /root/update_edgeone_ips.sh
    1. 将下面这份脚本粘贴进去:
    #!/bin/bash

    # =================================================================
    #        EdgeOne IP 列表自动更新脚本 
    # =================================================================
    #
    # -----------------------------------------------------------------

    # --- 配置 ---
    API_URL="https://api.edgeone.ai/ips"
    NGINX_CONF_PATH="/root/my_website/nginx/conf.d/edgeone_real_ip.conf"
    SSH_PORT="22"

    echo"--- 开始更新 EdgeOne IP 列表  ---"

    # 1. 获取 IP 列表
    echo"[1/3] 正在从 $API_URL 获取最新 IP 列表..."
    IP_LIST=$(curl -s "$API_URL")
    if [ -z "$IP_LIST" ]; then
        echo"错误: 无法从 API 获取 IP 数据。"
        exit 1
    fi

    # 2. 更新 Nginx 配置文件
    echo"[2/3] 正在生成 Nginx 配置文件: $NGINX_CONF_PATH"
    {
        echo"# EdgeOne Real IP Configuration - Auto-generated on $(date)";
        echo"# Do NOT edit this file manually.";
        echo"";
        while IFS= read -r ip; do
            if [ -n "$ip" ]; then
                echo"set_real_ip_from $ip;"
            fi
        done <<< "$IP_LIST";
    } > "$NGINX_CONF_PATH"
    echo"Nginx 配置文件生成成功!"

    # 3. 快速更新 UFW 规则
    echo"[3/3] 正在快速更新 UFW 防火墙规则..."
        
    # a. 禁用 UFW
    sudo ufw --force disable > /dev/null
        
    # b. 重置所有规则,自动回答 "yes"
    yes | sudo ufw --force reset > /dev/null

    # c. 设置默认策略
    sudo ufw default deny incoming
    sudo ufw default allow outgoing

    # d. 添加基础规则 (SSH)
    echo"  -> 添加 SSH 规则 (端口: $SSH_PORT)..."
    sudo ufw allow "$SSH_PORT"/tcp

    # e. 循环添加所有 EdgeOne IP 规则
    echo"  -> 正在添加 $(echo "$IP_LIST" | wc -l) 条 EdgeOne IP 规则..."
    while IFS= read -r ip; do
        if [ -n "$ip" ]; then
            sudo ufw allow from "$ip" to any port 80,443 proto tcp
        fi
    done <<< "$IP_LIST"
        
    # f. 重新启用 UFW,自动回答 "yes"
    yes | sudo ufw enable > /dev/null
        
    echo"UFW 防火墙规则已快速更新!"
    echo""
    echo"--- 脚本执行完毕 ---"
    echo"防火墙规则已实时生效。请手动重载 Nginx 服务以应用 IP 列表更新:"
    echo"cd /root/my_website && docker compose exec nginx nginx -s reload"
    1. 给脚本执行权限:
    chmod +x update_edgeone_ips.sh
    1. Nginx 主配置文件 nginx.conf:
    • nano /root/my_website/nginx/main-conf/nginx.conf
    • 将这行代码:set_real_ip_from 0.0.0.0/0;改成:include /etc/nginx/conf.d/edgeone_real_ip.conf;
  • 首次运行脚本:
  • ./update_edgeone_ips.sh
    1. 根据脚本末尾的提示,手动重载 Nginx:
    cd /root/my_website && docker compose exec nginx nginx -s reload

    检查“隐藏源站 IP”和“获取访客真实 IP”这两目标是否实现“隐藏源站 IP”是否实现?

    1. 执行下列命令:
    ufw status
    1. 如果出现一个长长的 ALLOW列表,来源全都是 EdgeOne 的官方 IP 地址段,类似下图,那么“隐藏源站 IP”已实现。

    “获取访客真实 IP”是否实现?

    1. 执行以下命令,实时监控 Nginx 访问日志:
    tail -f /root/my_website/nginx/logs/access.log
    1. 分别用手机(流量)、电脑(宽带)浏览器无痕模式访问我们的网站:https://anjir.top,里的任意一篇文章,观察滚动日志,如果分别出现了我们手机、电脑的真实ip,那么“获取访客真实 IP”已成功实现。

    创建一条 cron 定时任务,使脚本定时执行,Nginx自动重载

    1. 打开 crontab 编辑器
    crontab -e
    1. 新增下面这行命令(含义:每周六凌晨4点,自动更新 EdgeOne 的 IP 列表,并重载相关服务)
    0 4 * * 6 /root/update_edgeone_ips.sh >> /var/log/update_edgeone_ips.log 2>&1 && cd /root/my_website && docker compose exec nginx nginx -s reload >> /var/log/update_edgeone_ips.log 2>&1

    第四步:“鸟枪换炮”关键:尽可能多的将源站内容缓存至EdgeOne

    尽可能让 EdgeOne 缓存我们网站上的所有静态内容,甚至部分动态内容,最大限度地减少回源请求,让我们的服务器只处理最核心的动态任务(如文章发布、定时任务),那样不仅能给网站访客更好的体验,还能令我们1核1G的小服务器非常轻松。

    缓存规则优化:让源站“高枕无忧”

    登录 EdgeOne 控制台,进入我们的站点,点击“站点加速”-“规则引擎”。我们将在这里创建和调整规则。

    1. 缓存整个站点(首页、文章页、分类页等) 点击“创建规则”-“新增空白规则”,名称为:缓存全站页面 IF1,匹配类型:全部(站点任意请求) 操作:节点缓存TTL,行为:自定义时间,时间:31天 保存并发布 说明:缓存时间根据自己网站实际情况设定,我网站内容更新频率较低,所以设置的缓存时间很长。
    2. 缓存首页点击“创建规则”-“新增空白规则”,名称为:缓存首页 IF1,匹配类型:URL path,运算符:等于,值:/ 操作:节点缓存TTL,行为:遵循源站 Cache-Control,无 Cache-Control 时:自定义时间,时间:8小时 保存并发布 说明:新增规则默认位于最下方。执行顺序依次往下,下方优先级更高。
    3. 缓存上传目录点击“创建规则”-“新增空白规则”,名称为:缓存上传目录 IF1,匹配类型:URL path,运算符:正则匹配,值:^/wp-content/uploads/ 操作:节点缓存TTL,行为:自定义时间,时间:31天,强制缓存:开启 操作:浏览器缓存TTL,行为:自定义时间,时间:8小时 保存并发布
    4. 强制缓存静态资源点击“创建规则”-“新增空白规则”,名称为:强制缓存静态资源 IF1,匹配类型:文件后缀,运算符:等于,值:css、js、jpg、jpeg、png、gif、webp、ico、svg、woff、woff2、ttf、eot 操作:节点缓存TTL,行为:自定义时间,时间:31天,强制缓存:开启 操作:浏览器缓存TTL,行为:自定义时间,时间:8小时 保存并发布
    5. 禁止缓存后台和动态操作点击“创建规则”-“新增空白规则”,名称为:禁止缓存后台和动态操作 IF1,匹配类型:URL path,运算符:正则匹配,值:^/wp-admin/ OR,匹配类型:URL path,运算符:正则匹配,值:wp-login.php OR,匹配类型:URL path,运算符:正则匹配,值:wp-cron.php 操作:节点缓存TTL,行为:不缓存 保存并发布

    点击“站点加速”-“站点全局配置”,我们再对全局做点调整。

    1.“缓存配置”-“缓存预刷新”,开启,预刷新时间:20%,保存。 说明:在缓存资源过期之前就回源验证缓存资源是否有效,不用等到过期后再验证,提升站点加速性能,更快响应请求。 2.“网络优化”-“IPv6 访问”,开启。 3. 其他保持默认就行。


    完成上面配置后,接下来就是见证奇迹的时候了,打开测速网站,再次对我们的网站测速:

    anjir.top网站使用EO后 全国节点测速图

    可以看到,网站打开速度已经全部深绿色了,对比使用EdgeOne之前的那张测速图可以发现,整体打开速度提升了3倍,且最短的那块板,也由3秒多降到了1秒多,绝大部分地区打开都在1秒内,完美!


    未经允许不得转载:无花果 » 网站打开只要0.xxx秒!EdgeOne免费套餐,令我1h1g服务器搭建的WordPress网站既快又安全还耐打

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信扫一扫打赏