Ssl
欺騙太多客戶
我正在嘗試連接 stunnel 和 haproxy 以將 https 連接轉發到某些後端伺服器。
我已經正確設置了 haproxy,而且我似乎正確設置了 stunnel。麻煩的是,當我在一段時間後通過負載測試進行設置時,我開始看到這些日誌條目(在我開始收到連接被拒絕錯誤之前,我已經包含了來自正確連接的最後幾個條目):
2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=510 from 10.195.158.225:42722 2010.05.05 11:23:29 LOG7[3498:3035233168]: https started 2010.05.05 11:23:29 LOG7[3498:3035233168]: FD 510 in non-blocking mode 2010.05.05 11:23:29 LOG7[3498:3035233168]: TCP_NODELAY option set on local socket 2010.05.05 11:23:29 LOG7[3498:3035233168]: Waiting for a libwrap process 2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=511 from 10.195.158.225:42723 2010.05.05 11:23:29 LOG7[3498:3035167632]: https started 2010.05.05 11:23:29 LOG7[3498:3035167632]: FD 511 in non-blocking mode 2010.05.05 11:23:29 LOG7[3498:3035167632]: TCP_NODELAY option set on local socket 2010.05.05 11:23:29 LOG7[3498:3035167632]: Waiting for a libwrap process 2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42724 2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500) 2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42725 2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500)
我想我在某個地方遇到了限制,但我不確定如何修復它,似乎沒有 stunnel 的配置文件選項來改變它。
有誰知道如何為潛在的大量連接配置 stunnel?
據我回憶,stunnel 只是依靠 ulimit 設置來找到它在文件描述符中的限制。因此,您只需執行“ulimit -n 65536”,您將獲得大約 32000 的客戶端限制。
不過要小心,因為每個 SSL 上下文都可能使用大量記憶體。此外,如果您的 stunnel 線上程模式下工作,您不一定希望達到那麼高的執行緒數。
在此處檢查您的限制:
cat /proc/$(pidof stunnel4)/limits
然後編輯文件
/etc/default/stunnel4
:設置 RLIMITS:RLIMITS="-n 65536"
重啟stunnel:
sudo /etc/init.d/stunnel4 restart
再次確認您的限制
cat /proc/$(pidof stunnel4)/limits
。