105 字
1 分钟
回源配置
场景需求
CDN 或者全站加速等场景,可以设置 HTTP 回源,然后配合 IP 地址列表,实现仅允许对应 IP 访问源站,阻断非法访问。
EdgeOne
[!info] 免费版不支持控制台操作,所以这里借助脚本 + API
nginx 配置如下:
server { # default_server 表示如果有其他域名指向这个IP,也都由这个配置处理 # 只要IP白名单通过,这里就无脑响应 listen 80 default_server;
# _ 是一个常见的习惯用法,代表“匹配所有域名”或“不关心域名” server_name _;
root /var/www/files;
# 引入之前的 IP 白名单脚本生成的配置文件 include /etc/nginx/edgeone_ips.conf;
location / { autoindex on; }}编写更新脚本 /usr/local/bin/update_edgeone_ips.sh:
#!/bin/bash
# 定义文件路径API_URL="https://api.edgeone.ai/ips"CONF_FILE="/etc/nginx/edgeone_ips.conf"TEMP_FILE="/tmp/edgeone_ips.tmp"
echo "1. 开始下载 IP 列表..."# --http1.1: 强制使用旧协议,防止卡死# -s: 静默模式 (不显示进度条)# -S: 如果报错则显示错误信息curl -sS --http1.1 "$API_URL" > "$TEMP_FILE"
# 检查是否下载到了内容(文件是否存在且大小大于 0)if [ ! -s "$TEMP_FILE" ]; then echo "❌ 下载失败:文件为空。" exit 1fi
echo "2. 格式化并生成 Nginx 配置..."# 使用 awk 提取非空行的第一列,拼接成 allow 语句awk 'NF {print "allow " $1 ";"}' "$TEMP_FILE" > "$CONF_FILE"
# 追加 deny allecho "" >> "$CONF_FILE"echo "deny all;" >> "$CONF_FILE"
echo "3. 重载 Nginx..."# 检查配置无误后重载nginx -t && systemctl reload nginx
echo "✅ 完成!"# 清理临时文件rm -f "$TEMP_FILE"赋予执行权限后,设置定时任务:
0 3 */3 * * /usr/local/bin/update_edgeone_ips.sh部分信息可能已经过时









