服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

解决exception服务器机房电源问题。 (怀疑电涌或尖峰)

我们在所有电源sockets的新办公室服务器机房中遇到了一个非常奇怪的问题。 具体来说,当所有设备启动并运行时(即空调系统,2x机架式服务器,5个48端口PoE交换机以及在服务器机房内具有备用电池和主控制电路的门禁系统)我们偶尔会看到服务器自动重启,门禁系统重新启动,同时PoE交换机也会一次进入20分钟或更长时间的非function状态。 发生这种情况时,所有三个系统将同时重启。 所有三个系统都在同一个电路上。 服务器和交换机在UPS设备上运行,并且卡访问系统也具有自己的备用电池 – 所以瞬间的电力损失不能解释这一点,因为一切都应该继续从UPS运行而不中断。 我们已经将UPS从墙上断开,并且已经看到服务器按照预期继续运行 – 所以就停电而言,UPS似乎正在正常工作。 没有一个断路器已经跳闸或需要重置。 空调系统显然是与服务器和networking设备分开的电路; 然而,其电力电缆与电力电缆共用导pipe,电力电缆运行到服务器所使用的墙上电源sockets。当AC接通或断开时,可能存在电压从一个电路感应到另一个电路的风险,因为它们并联彼此相当几米? 我和其中一位正在试图弄清楚发生了什么事的电工交谈,他说,虽然空调机组与服务器和其他系统是分开的,但两条电路实际上有着共同的中立 – 他认为可能会导致问题。 这是一个正常的configuration吗?或者在服务器机房中使用AC设备与敏感设备共享中性设备会被认为是不好的做法? 目前,这个问题已经自行消失了。 服务器已经停止了自发的重新启动,并且交换机重新上线,但是没有真正的改变,所以潜在的问题仍然存在,可能迟早会重新出现。 鉴于我们看到在这些情节中,有多个系统有单独的电池备份单元重新启动,除了电源浪涌或峰值之外,还有什么可能的解释?

在使用TLS时拒收Microsoft的Sendmail邮件

我将以一个声明说,我不是sendmail的专家。 我很less使用它,但在这种情况下,我必须为我的客户。 背景: 我的一个客户端有一个运行Debian 7.7,Sendmail 8.14.4和OpenSSL 1.0.1e的邮件服务器。 它会生成电子邮件(像帐户重置的东西),并将其发送给客户。 我会称之为“服务器A”。 从服务器A发送到域* .outlook.com(奇怪不包括@ outlook.com消息,由hotmail处理)的任何邮件服务器的消息由于TLS握手失败而被推迟。 这只是Microsoft所拥有的服务器的问题; 一切正在工作。 日志中的错误看起来像这样: sendmail[22213]: ruleset=tls_server, arg1=SOFTWARE, relay=mail.protection.outlook.com, reject=403 4.7.0 TLS handshake sendmail[22213]: s2L9EakQ022098: to=<[email protected]>, delay=00:00:55, xdelay=00:00:31, mailer=esmtp, pri=181653, relay=mail.protection.outlook.com. [145.123.225.25], dsn=4.0.0, stat=Deferred 注意:这些日志是由于我的客户不希望复制和粘贴的东西less,他们意外泄漏敏感数据。 信息在那里,我只是手工input,所以忽略错别字等。 这就是我能从日志中得到的所有东西,即使是15日志(除此之外,系统开始变成磁盘限制)。 问题: 握手的tcpdump显示服务器A连接到outlook.com,EHLO成功,服务器A启动了STARTTLS,outlook.com随后响应其证书链。 所有这一切正常。 然后,服务器A收到Microsoft证书链后,服务器A发送自己的客户端证书。 Outlook.com然后丢弃连接。 我们的客户证书是我们用于组织内validation的自签名证书,不应该出去outlook.com。 从我有限的知识,我最好的猜测是,outlook.com正在请求客户端证书进行validation(或至lesssendmail认为其请求证书),服务器A上的sendmail是强制性的。 然后Outlook.com将删除连接,因为证书是无效的或不是它所期望的。 两个问题: 为什么sendmail将客户端证书作为STARTTLS的一部分发送给outlook.com? 有没有办法阻止sendmail向我们域外的服务器发送客户端证书,即使服务器请求它? 从我做的实验中,如果我简单地忽略证书请求并发送消息,outlook.com将接受消息。 在任何人build议之前,我已经创build了一个访问映射,防止TLS与一些与Microsoft相关的IP地址连接。 这不是一个好的永久性解决scheme,因为我更喜欢使用TLS,并且IP地址列表必须手动维护,这是一个麻烦。

我可以在nginx提供的静态文件中使用nginx环境variables吗?

如果我在nginxconfiguration中使用了一个环境variables,并且nginx被configuration为仅提供静态文件(html,js,css – 例如AngularJs应用程序),那么我有什么办法可以在nginx提供的JS文件中使用环境variables? 或者是执行此操作来运行非静态服务器的唯一方法,例如io.js,php等 顺便说一句,你不能在nginx的configuration中使用环境variables。 当我在nginxconfiguration中讨论环境variables时,我的意思就像在这篇文章中: 我如何在Nginx.conf中使用env APP_WEB_1_PORT_5000_TCP_ADDR; 环境variables env APP_WEB_1_PORT_5000_TCP_ADDR; 和$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}; 解释你的用例 我的具体用例是在Docker容器中有一个由nginx驱动的AngularJS应用程序。 该应用程序是一个“单页应用程序”,它使用完全在另一个系统上运行的API。 目前我在生产和分期之间运行不同的docker容器,因为应用程序有一些不同的configuration,例如Google-Analtyics代码。 这个特定于环境的数据保存在一个config.js文件中,并且这些值当前是硬编码的,git中的master分支的一个值,以及staging分支的值不同。 我想改变devise,所以我可以使用相同的容器来生产和舞台。 我想运行一个ENV var到容器中( docker run -e GACODE=UA-12345-6 … )并让nginx使用ENV var(通过env GACODE;和$ENV{"GACODE"}所以config.js文件可以使用传入的GoogleAnaltyics代码,而不是对它们进行硬编码)。 我不知道这是否可能(因此这个问题;))。 只使用nginx使我的容器是一个单一的进程,而如果我必须使用io.js,那么我将需要多个链接的容器和更多的移动部分是更复杂的)。