Linux运维老手也常踩的5个Unix环境搭建坑
|
去年三月,查一下收录——先敲curl,再curl,再curl,三次都是空回包。不是404,是连header都懒得吐,timeout直接挂掉。我原以为是CDN抽风,结果运维老张在群里发了个捂脸表情包,说“刚切完nginx配置”。
文章配图,仅供参考 他切的哪版?就那个带subfilter模块的定制编译版。他自己写的configure参数,加了--with-http_sub_module,又关了--with-http_ssl_module——SSL?他说“反正反向代理层有WAF扛着”。我信了。第二天索引量掉了一半,快照回退到二月十七号,而那天我老婆晾在阳台的蓝衬衫还没收,雨水把领口泡得发白。 第一个坑:环境变量里PATH写死了/usr/local/nginx/sbin,但实际启的是/opt/nginx-1.22.1/sbin/nginx。系统认得清,ps aux看得见,可systemctl status里显示“active (exited)”——它压根没跑起来。cron里那个每小时扫一次robots.txt的脚本,连续六十三次返回空,没人看见。直到客户老刘凌晨两点微信语音炸进来:“我友链页面全404了你知不知道?”我说“马上”,挂了电话点开终端,手抖,删错了一行export PATH,顺手把/etc/profile.d/php.sh也rm -f了。这个我敢打包票:删掉它不等于PHP崩,但php-fpm子进程会漏掉一个env,导致PDO连接池超时阈值读成零。不是报错,是沉默地饿死。 第二个坑:/etc/hosts里写了localhost 127.0.0.1,可底下多了一行127.0.0.2 localdomain。谁加的?不记得了。可能是某次装docker-compose留下的残迹。但搜索引擎爬虫模拟的UA访问,恰好调了gethostbyname()再做域名验证,本地解析优先走hosts,于是所有“www.”前缀的内链都绕进了一个不存在的vhost。外链失效不是因为301跳丢了,是因为根本没走rewrite规则——流量直接被拒在server块外。我翻log的时候隔壁装修电钻正凿承重墙,咚、咚、咚,每一声我都数着,一共二百一十七下。等静下来再看access_log,三百七十二个词,全是“-”和“-”中间夹着一个“-”。 第三个坑:umask设成了0002,而不是0022。这事谁会在意?文件权限啊。可偏偏那个自动生成sitemap.xml的PHP脚本,每次touch新文件,owner组权限是rw-rw-r–,但web服务器用www-data跑,不在那个组里。它读得到旧sitemap,读不到新生成的——因为nginx用户组匹配失败。查的时候我在抽烟,烟灰掉在键盘上,粘住了一个shift键,所以grep -r “sitemap”敲成了grep -r “SITEMAP”,搜了四分钟空白结果。等我掸灰、按松、再敲,已经过去十九分钟。排名消失不是一天的事,是每小时都在掉,但日志里不报错,只有一片寂静。 第四个坑……算了,说这个我自己都烦。就是那个改版伤流量的事。新站结构套了React Server Components那一套,但后端proxy_pass硬塞了X-Forwarded-Proto: http。HTTPS站点返http头,Googlebot当真了,缓存全打乱。可笑的是我们自己测,curl -I https://… 好好地,因为浏览器自动降级处理了;但爬虫不会降级,它只信你给它的头。客户催第三次的时候,小王在工位上啃包子,油蹭到工单系统界面上,他伸手去擦,误点了“关闭并归档”。我就没再提这事。 第五个……其实是同一个坑换了个马甲。去年我们搞站群那会儿,用rsync推静态页,每台机器时间不同步,导致有的服务器mtime比爬虫抓取时间还晚三秒。它判定页面“未变更”,跳过抓取。这次是inotifywait监听日志轮转,但脚本里写的是sleep 5 && gzip,而systemd-journald切日志用了纳秒精度,两次事件间隔压根不到五秒。采集被识别?不,是根本没被采集。我翻完journalctl才发现,那个服务单元的RestartSec=3s,但它重启八次之后,第七次起的进程,uid居然是998——系统自动生成的nobody组里的一个幽灵UID。谁配的?我说不准。到底是哪次更新的事我说不准,但我知道它一定跟那个自动清理/var/log/journal的cron有关。那会儿我还在用tmux分屏,左屏tail -f,右屏vim /etc/cron.d/clean-logs,中间飘着一行没保存的注释:“删了会不会丢审计?”——没删。现在想,删了反而干净。 想起当年做站群,一台阿里云ECS上跑三十个子站,靠hosts切域名,IP都不用配,全绑127.0.0.1。那时候没SSL,没HTTP/2,没CSP头,更没人管umask。百度蜘蛛来得勤,天天快照,像回家一样熟门熟路。现在呢?优胜劣汰,汰掉的不一定是技术差的,是那些忘了环境本身也会咬人的。昨天小陈问我:“nginx.conf里worker_rlimit_nofile要调多大?”我没答。他刚入职三个月,头发还黑亮,衬衫扣到最上面一颗。我盯着他看了三秒,转身把桌上那盒拆封的烟推进抽屉深处。 明天先把手上那批页面删一半试试。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


网站搭建总卡壳?多媒体工程师的运维避坑清单
网站上线流量归零?运维盲区正 silently 杀死用户
Unix高效包管理:创业者技术增效必备
从容器运维到模式化视觉分析平台:技术驱动的创业实践
六年运维实战:系统优化与容器编排提效
鸿蒙电商新政落地,技术运维迎来新挑战
筑牢营销渠道安全防线:主机运维视角下的品牌科技防护