>我在/etc/hosts 文件中将 "mariadb" 设置为 127.0.0.1,sidekiq 偶尔会抛出错误,例如:
Mysql2::Error::ConnectionError: Unknown MySQL server host 'mariadb' (16)
VM 没有承受很大的负载或类似的东西。
后来编辑:似乎其他宝石在解析主机时也有问题:
WARN -- : Unable to record event with remote Sentry server (Errno::EBUSY - Failed to open TCP connection to XXXX.ingest.sentry.io:443 (Device or resource busy - getaddrinfo)):
有人知道为什么会发生这种情况吗?
几周前我已经想通了这一点,但想在发布答案之前确定一下。
我仍然无法弄清楚这个问题的机制,但它是由 fail2ban 引起的。
我让它在一个容器中运行,轮询 httpd 日志并阻止大量机器人抓取我的网站。
此外,我还增加了最大文件处理程序和 inotify 处理程序。
fs.file-max = 131070
fs.inotify.max_user_watches = 65536
一旦我摆脱了fail2ban并增加了inotice处理程序,错误就消失了。
显然,Fail2ban 因此进入了"请勿接触"列表,我们在应用层推出了一个 404/403/500 处理程序,将未知 IP 推送到 Cloudflare。
虽然这可能是一个边缘情况,但我把它留在这里,希望它在某些时候对某人有所帮助。