我们有七个使用IIS编写的运行在Windows 2008服务器上的PHP网站。 他们现在都很慢。 当我查看任务pipe理器时,我看到大约10个php-cgi.exe进程,他们都占用了CPU的0%,除了一个占25%。 这是一个四核服务器,所以它是100%的一个核心。 如果我观察几秒钟,25%的过程将会变为0%,另一个不同的php-cgi.exe过程将跳到25%。 所以所有的php-cgi.exe进程只是排队等待一个核心,每个进程使用100%的处理器。 这7个站点中的每一个都位于IIS的自己的应用程序池中,我们正在使用FastCGI。 PHP版本是5.3。 有任何想法吗? 谢谢! 编辑:这是我们的FastCGI设置: <fastCgi> <application fullPath="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" monitorChangesTo="C:\Program Files (x86)\PHP\v5.3\php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000"> <environmentVariables> <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <environmentVariable name="PHPRC" value="C:\Program Files (x86)\PHP\v5.3" /> </environmentVariables> </application> </fastCgi> 编辑#2:我们部分想出来。 由于权限问题,PHP从来没有垃圾收集会话,所以有数百万个会话文件。 但是我仍然想知道为什么它只使用一个核心。 现在网站要快得多,但我们还没有解决。 有人知道吗?
我一直在一个静态文件服务的目的网站超级瘦IIS 7.5configuration工作了一段时间。 为了达到这个目的,我简单地将所有dynamic模块的指定网站剥离,只指定本地模块,如StaticFileModule , AnonymousAuthenticationModule , HttpCompressionModule等 这已经被certificate会导致工作进程的内存占用和处理开销显着下降,整体性能比默认网站好得多。 现在,作为下一步,我想看看是否可以进一步减less装入内存的模块数量。 我可以逐个删除模块,并尝试查看它是如何影响性能和function的,但我宁愿调查各个模块实际上具有/pipe理的function。 一些模块是不言而喻的(即DefaultDocumentModule , DirectoryListingModule ),但有些不是。 有什么地方可以find内置原生模块的文档?
在ARRconfiguration为使用SSL / TLS连接到内容服务器的情况下,它是否使用SSL会话(例如RFC 5246中指定的会话标识符 ),以便与内容服务器的后续连接可以使用简短的握手? 如果是这样,可以使用与内容服务器的单个SSL会话来为多个客户端提供服务? 我知道ARR的SSL实现来自底层的schannel组件,而且我相信,如果configuration安全套接字层服务器和客户端caching元素 ,它将默认为连接的两端进行caching 。 但是,我找不到一个明确的文章来支持ARR的情况。
我在IIS中有一个网站,在该服务器上有两个不同的IP地址。 我希望能够使用其他IP地址将单独的SSL证书分配给IIS上的同一站点。 像这样的东西: www.abc.com – > 1.1.1.1 – > ABC公司的SSL证书 – > WebsiteX www.xyz.com – > 1.1.1.2 – > XYZ公司的SSL证书 – > WebsiteX 我一直在争取一段时间,似乎WebsiteX只能有一个SSL证书分配给它。 是否有可能做我提议在IIS 7.5中,或者我将不得不在IIS中做这个另一个网站?
我在我的开发机器(Windows 7 RC)上创build了一个网站,可以从http:// localhost /或http://172.16.0.140/ (我的IP)或http:// seven / (计算机名称) 。 我可以从其他计算机ping我的机器,但我无法从其他计算机访问该网站。 “网页不可用” 你有什么想法是错的?
有没有办法使用ARR将请求重新路由到80/443以外的端口(分别是默认的http / https端口)? 我们有几个Web应用程序监听80以外的端口,并希望使用ARR对它们进行负载平衡。 这甚至有可能吗?
当我们试图从我们的IIS服务器请求一个CSS文件时,这是最好的certificate。 有时我们会得到整个未压缩的文件。 我们将等待5秒钟然后刷新,然后CSS文件被压缩,原始大小的1/5(这是我们想要的)…但是如果我们再等一会儿,它会再次回到原始的未压缩版本。 任何想法可能会导致这个或如何排除故障?
我们有一个网站在IIS上使用DNN在ASP.NET中构build。 目前我们尝试为两台服务器configurationnetworking负载均衡。 服务托pipe服务提供商告诉我们这样做已经足够了,但是我们似乎碰到了一堵砖墙: networking负载均衡只转发来自他的公共IP的请求,它不检查服务器的可用性 如果服务器出现故障,50%的请求将会看到“服务器不可用”,直到我们手动从负载平衡configuration中删除服务器 我没有看到一种方法来configuration这两台服务器没有这个问题 借助三向负载均衡(即Web场),单个系统将检查哪些服务器可用。 如果服务器closures,它会将请求转发到其他服务器。 以上是对networking负载平衡的限制的正确假设,导致经典网上农场作为唯一的解决scheme,还是有一些托pipe服务提供商可以configuration,以防止这种行为,让我们只坚持两个系统?
而不是翻转GUI中的开关来告诉IIS使用匿名身份validation的应用程序池标识,我想要在PowerShell脚本中执行此操作。 Scott Forsyth发布了一个解决scheme,它改变了所有网站的默认设置。 我怎样才能做一个特定的网站只? 用PowerShell?
在IIS 7.5中是否有一个设置,在新创build的应用程序池上默认“启用32位应用程序”为False? 我知道如何为Power Shell中的一个应用程序池设置它,但是我想知道是否有一个全局的IIS设置,所以当创build一个新的应用程序池时它总是会是错误的。 谢谢!