我在我们的两台新服务器(都是全新安装的)上使用 Ubuntu Server 10.04 64bit 时出现了一些奇怪的行为。我在 4-5 台其他服务器上部署了 ubuntu 服务器(相同版本),但没有出现此问题。
最初,我无法通过 ssh 进入全新的服务器安装,直到我在 /etc/ssh/sshd_config.conf 中手动设置 ssh 服务器正在侦听的地址。连接后,我似乎被随机踢出,并出现以下错误:
写入失败:管道损坏
使用“ssh -vv”不会显示任何其他信息。当我以这种方式被踢出时,我无法在另一个看似随机的时间段内重新连接。有时几秒钟,其他几分钟。如果我运行“netstat -nap|grep :22”,我可以看到在写入失败错误后我的连接仍然存在。在连接断开之前,我似乎无法重新连接。
在这些错误之一之后,如果我从控制台跳到服务器上,ssh 到另一台机器,然后尝试 ssh 回到服务器,一切正常。
使用“-o TCPKeepAlive=yes”客户端似乎没有任何影响。我在服务器上禁用了 iptables 和 ufw。AppArmor 未显示任何强制配置文件且未安装 SELinux。
我的日志没有报告任何错误,我也没有任何自定义配置。这是一个盒装安装。请注意,当我在管道损坏错误后尝试返回时,这是我得到的错误:
ssh:连接到主机 172.22.50.92 端口 22:连接被拒绝
并且 nmap 不再显示端口 22 处于打开状态,尽管服务器上的 netstat 表示它仍在侦听端口 22。
编辑 - 我不确定这是否意味着什么,但我已经在这些主机上安装了 KVM,我可以 ssh 进入来宾(64 位 ubuntu 服务器),没有任何问题。
更新 - 我已经尝试清除 openssh 并使用 apt 重新安装。我还从源代码中清除并安装了 openssh,但没有运气。traceroutes 和 ping 一夜之间显示没有任何数据包丢失。
另一个更新 - 戴尔似乎认为我们的服务器主板有问题。更换它以查看它是否解决了问题。
我有一个非常标准的 Rails 应用程序,可以在一个盒子上运行 Unicorn 和 Nginx。我想分离应用程序本身,并在一台机器上安装 Nginx,在另一台机器上安装 Unicorn(带有 Rails 应用程序)。这里的想法是我想在以后的 Unicorn 中添加另一个应用程序服务器,主要是为了一些轻负载平衡。
我可能是从错误的角度来解决这个问题的。这是正常的/可能的吗?如果是这样,有人可以指出我的示例配置或文档吗?
如果这不是要走的路,那么实现最终目标的正确途径是什么?我已经研究过 HAProxy,但在阅读了一些 Nginx/Unicorn 文档后,我了解到无需任何其他软件即可实现这一点。