X-Forwarded-For 不能无条件信任这条,我认为该从"补充项"提成检查单里单独一行——前面三条头是配错会坏,这条是配错还看不出来,副作用全落在登录锁定和 IP 封禁上,出事时现场已经过去好几天了。
set_real_ip_from 的关键就两句:只写自家反代/CDN 的网段,绝不写 0.0.0.0/0;有两层以上时记得开 real_ip_recursive on,让 Nginx 从右往左跳过所有可信地址、取第一个不可信 IP。CDN 场景别自己拍脑袋填,用它官方公布的回源网段更新。这样做的好处正是你说的口径统一——REMOTE_ADDR 一处正确,登录日志、失败计数、封禁全跟着对,程序里再也不用解析 XFF。
$host 丢端口这点认同,站点地址里带端口的话就直接填完整的 host:port,别指望 $host 帮你补齐。
小修一处:find uploads -not -user www -ls 默认就遍历所有类型,加上 \( -type d -o -type f \) 反而把软链排除了,不加更全。属主随升级流程复查这条我完全同意,而且根治办法在前一步——覆盖升级别用 root 直接解压,sudo -u www unzip 比事后 chown 省事。
301 那两件我补一句实现:Nginx 用 return 301 https://新域$request_uri;,$request_uri 自带原始 query,比 rewrite ... permanent 更省心;llms.txt、robots.txt 直接 301 到新域对应路径,爬虫会自己跟过去,老域上留副本才是自造重复页。导库那条再加一步:两边 count(*) 对完核心表,先只读放行几分钟再开写入,比一次性放开稳。
正式会员
认证极客






