我听说将keepalive超时设置得太高会降低其值。 所以,为了安全起见,还是从中受益,我可以把它设置为1秒吗? 或者将它设置为1秒等同于将其closures?
我刚刚升级了一台服务器到Debian Jessie,其中包括Apache 2.4.10(2.2版本)和PHP 5.6。 现在,在某些情况下,SSL站点不会在IE11和iPad Safari(不确定桌面Safari)上提交表单。 Firefox和Chrome都可以。 当它失败时,在IE中产生IE错误页面“这个页面不能显示”。 只是强调:我可以到达网站,看到表单,这是表单提交,然后失败。 这在某种程度上与KeepAlive和SSL有关。 如果我在SSL VirtualHost中closuresKeepAlive,问题就会消失。 (这是使用SNI,虽然其中一个显示错误的网站是第一个SSL)。 我正在使用mpm-itk(并在升级之前)。 在IE11中(在Windows 7上),它发生在* SSL(HTTPS)* Apache KeepAlive On,KeepAliveTimeout 5(默认)*表格上传文件(所以enctype = multipart / form-data)*,只有当文件是实际提供(没有文件或与其他字段没关系,即使是一个1字节的文件导致它失败,而不是依赖于文件大小)。 *只有在显示表格的60秒内开始上传(也就是说,如果您在按提交之前保留60秒就可以) 有什么失败的线索没有线索。 服务器日志中没有任何内容显示它再次联系服务器。 错误是直接的。 除了在networking页面的结果栏中显示“(Aborted)”和“导航发生:File:dnserror.htm”,我认为它只是显示的页面之外,IEdebugging器中没有任何内容,名称没有dns错误,据我所知。 当我按提交button时,提琴手没有显示networkingstream量。 在Windows事件查看器中没有任何相关的东西。 这是最奇怪的事情 – 它似乎没有尝试。 对于Apache 2.4,我已经按照以下build议设置了SSL: https : //mozilla.github.io/server-side-tls/ssl-config-generator/?server= apache-2.4.10 &openssl=1.0.1k&hsts=no&profile =中等 。 CiperSuite与我的2.2版本没有任何区别,但OCSP装订已经开始。 2.4的主要变化是TLS1.2(但菲德勒降级,我相信,所以这是不可能的)。 HSTS已打开,但以前是。 SSLLabs为网站提供A +评分,并不表示任何错误。 我已经尝试将KeepAliveTimeout更改为60; 并且还回到旧的BrowserMatch中“ MSIE ”nokeepalive ssl -ieanan-shutdown […]
在一台服务器上,我有大约30个PHP站点在Apache下运行。 所有这些网站使用相同的(HTTP)API来获取一些数据。 API托pipe在其他地方(在我的控制下) API使用Nginx保持活动,PHP站点使用CURL来提出API请求。 访问这30个站点中的一个将产生一个API调用,并且一旦HTML被传递给访问者,API的连接将被apache / PHPclosures。 我正在寻找的东西就像API的本地代理,它能够维持与它的连接,所以PHP站点可以从Keepalive中获利。 无论如何完成这个?
我知道在Apache的prefork模块创build一个主进程和几个subprocess来处理连接,我的问题是: 每个prefork孩子每次处理一个连接还是处理一个请求 ? 如果它处理一个连接,这是否意味着每个新的连接都需要在队列中等待一个空闲subprocess来处理? 以及关于保持连接的说法? 此外,我有使用线程的工人mpm模块相同的问题?
HTTP请求上的keep-alive和TIME_WAIT中的一个tcp套接字之间的关系是什么? 此外,如果系统和Web服务器设置是alignment的,例如server.max-keep-alive-idle = 60 ? 根据如何减lessTIME_WAIT中的套接字数量? 在Linux中,TIME_WAIT状态在60秒内硬编码(至less对于Linux的Ubuntu / Debain值)。 在lighttpd中,默认值server.max-keep-alive-idle = 5 ,对于高负载他们build议更低。 如果tcp套接字可用,在5秒后closures一个http请求似乎是一种浪费 – 当然假设net.ipv4.tcp_tw_reuse = 1的设置完成了它所说的话。 这个相关的问题 – tcp如何保持连接活着? [closures]涉及到这个问题,但并没有完全回答我。
我如何dynamic检查/列出一个特定的Apacheconfiguration指令? 我知道这可以从httpd.conf文件手动检查,但是有没有其他方式可以从运行的 Apache服务器进程中确认/find? 例如:在我的情况下,我正在检查KeepAliveconfiguration指令。 我甚至用命令/usr/local/apache2/bin/apachectl -h ,但是在这里找不到它。
我最近问了一个关于如何使用Nginx保持后端连接持久性的问题,但是发现这是不可能的, 这是一个HTTP / 1.0代理,但没有保持活动请求的能力。 (因此,每个请求都会创build和销毁后端连接。) 它的工作现在一切正常(因为客户端和Nginx之间的连接保持活跃,结果是一样的),但我不想build立一个新的连接每一次收到一个新的请求,即使它是一个unix域套接字。 那么,你是否推荐完成这种连接的软件(最好是开放源代码而不是太繁琐的configuration)?
我想强制运行在RHEL 5.8上的Apache 2.2.3服务器上的所有HTTP请求的Keep Alive或Persistent连接。 许多networking爬虫正在使用HTTP 1.0出于某种原因,我想或者强制持久连接,或者强迫这些连接使用HTTP 1.1,以便在Apacheconfiguration中保持活跃设置将导致持久的HTTP。 这是因为我想减less打开的TCP连接数。 我怎样才能做到这一点?
当在Nginx上运行培根(43字节透明像素)负载testing时,我们尝试了几个keepalive_requests值(从10到100,000),最佳值似乎是10 。 以下是这个小回复的服务器HTTP标头: HTTP/1.1 200 OK Server: nginx/1.5.6 Date: Wed, 23 Oct 2013 12:39:45 GMT Content-Type: image/gif Content-Length: 43 Last-Modified: Mon, 28 Sep 1970 06:00:00 GMT Connection: keep-alive Nginx的keepalive_requests 100000比keepalive_requests 10慢两倍。 你能帮助理解这个结果吗? 或者告诉我们做错了什么? 作为参考,这里是nginx.conf文件 。
今天我们在服务器上遇到了一个问题,当文件/脚本需要更多的3秒加载。 解决scheme很简单 – 只需将MaxClients增加到估计的内存限制即可。 但是我担心该解决scheme的可伸缩性,而且看起来不太可靠 – 如果负载稍微增加,问题就会再次出现。 我们正在开发的web服务的性质 – 小型在线游戏 – 要求我们embeddedAJAX机制,每隔15秒发送一个信标,指示客户端在线。 让我们想象下面的设置。 Apache 2(mpm_prefork),MaxClients = 150,KeepAlive = on,KeepAliveTimeout = 5。有300个用户在线。 我是否理解正确 – 如果所有300个用户同时发送一个信标(只需使用POST检索beacon.php脚本) – 首先150个客户端将立即得到答案,而另外150个用户将需要等待5秒钟才能得到回答? 第二个问题。 在我的情况是什么是最好的解决scheme? 禁用保持活着?