由于我无法控制的原因,在我们的NATnetworking上有一个networking服务器(相当标准的Debian / Apache部署),它将所有stream量都传送到端口80和443.我无法改变这一点。 这台机器恰好是32位(再次,不是我做的决定,因为我会做这个不同的),有点旧。 我一直在尝试将我的环境从PHP-FPM切换到Facebook的HHVM应用程序服务器 , HHVM应用程序服务器无法安装在此特定计算机上(HHVM不支持32位计算机)。 我需要安装HHVM,因为我想使用Facebook的新语言HACK 。 我的直接反应是想知道,如果将HHVM应用程序服务器安装在与Web服务器不同的机器上,而Web服务器使用TCP端口9000上的FastCGI协议与应用程序服务器通信,是否会显着降低性能。 我认为这是可行的,而且相当容易,HHVM只需要绑定到机器的真实IP而不是回送地址。 机器之间的连接是全千兆位,两者之间只有一个交换机,networkingstream量在这个区域非常低,在机架上它们是物理上相互重叠的。 那么,如果可能的话,性能下降会是怎样的呢?
注意: 这不是关于PHP; 语言是C ++ 我将使用spawn-fcgi来启动FastCGI应用程序。 我已经find了daemontools包提供的监督工具( http://manpages.ubuntu.com/manpages/precise/man8/supervise.8.html )。 不过,我对其他和/或更好的select感兴趣。
Windows Server 2008 R2 Standard IIS 7.5 PHP 5.3.28 FastCGI的 我在ASP.NET网站的子文件夹中有一个WordPress博客,该网站已经开始运行非常缓慢。 经过实验,我发现所有的 PHP文件加载速度都很慢,即使它们没有任何PHP代码在内部执行。 <h1>Hello!</h1>本身在文本或HTML文件中加载速度很快,但在PHP文件中需要永久使用。 PHP正在通过FastCGI运行。 除了open_basedir之外,所有推荐的php.ini设置都已设置,并且通过ini_set()设置没有帮助。 类似的问题的答案似乎总是谈论MySQL,但我似乎已经消除了从这里的争夺MySQL。
看下面的nginxconfiguration文件。 基于虚拟名称的托pipe(example.com),将example.com和www.example com的请求传递给端口9000上的mono fastcgi进程(127.0.0.1:9000) 我已经添加了文件谷歌网站validation,但问题是,asp.net fastcgi应用程序是一个MVC应用程序,所以它不会find名为“google79af7e588a34905e0.html”的控制器。 我试图覆盖虚拟主机configuration文件中的位置,所以它不会将请求的google79af7e588a34905e0.html转发到fastcgi应用程序,但它不起作用。 我已经重新启动nginx,但它没有区别… 我究竟做错了什么 ? 我已经尝试删除“位置= /”的等号,但这是行不通的,我已经尝试在主要位置之前移动位置覆盖,但这也没有什么差别。 我也改变了主机名称,只是为了看看我是否在正确的configuration文件,而我,当我更改域名,我开始得到404。 ## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want […]
我正在尝试在Windows Server 2012上的iis8上部署python Web框架web2py。我正在使用fastcgi,从microsoft,v 2.1和python 2.7下载 web2py有时会在docroot下创build.py文件。 发生这种情况时,IIS请求线程立即崩溃,出现500个错误“FastCGI进程意外退出”。 我可以每次重现这一点,例如通过在请求处理程序脚本中使用python标准库提取tar文件。 如果我让web2py在docroot之外写入,那么错误就不会发生。 所以IIS在创build.py文件时会有反应。 这导致了冲突,导致请求崩溃。 没有达到Pythonexception。 请求线程立即死亡。 该文件保留为0字节。 所以这个文件是通过执行python脚本来处理请求的,但是在它被closures之前,请求进程或线程就会死掉。 我不知道IIS在做什么或者为什么,但它是否有文件观看? 我已经closurescaching。 web2py有时会尝试写入.py文件。 它有两种做法:1)当使用基于浏览器的IDE编辑.py文件(如“controllers”)时2)在创build新的应用程序时,因为它解压缩了一个名为welcome的模板应用程序,这包括编写.py文件我有一个模拟(2)的控制器。 也就是说,作为处理浏览器请求的一部分,它解开了构成模板应用程序的文件包,其中包括.py文件。 这些问题与文件系统安全无关,因为非.py文件是可以的。 在任何情况下,文件权限错误肯定会由pythonexception处理或将logging在某处。 集中(2),一旦遇到第一个.py文件,Web请求就会以灾难性的方式失败。 它看起来像某种locking。 我正在淘洗processmon,但没有看到任何有趣的东西。 我可以得到一个来自IIS的请求跟踪日志的崩溃的请求,但它没有提供任何理由,虽然我没有经验解释这些文件。 如果我将(2)中使用的path更改为在IIS网站的文档根目录之外,则完美运行。 不幸的是,这不是一个解决办法。 web2py需要在docroot下更新和创build文件。 因此,当.py文件添加到文档根目录下时,IIS正在做一些事情,并且在实际运行的请求中没有发生什么事情,但是在其他某个线程或进程中。 什么都是,杀死请求线程可能是由于文件系统错误,处理不好。 请求线程似乎马上死亡。 我有大量的日志语句,并且等待这个文件错误的Pythonexception永远不会到达。 web2py代码已经成熟,可以在其他http服务器下运行。
我试图自动部署一个IISnetworking服务器(目前8.5,将需要一直工作到7.5以及),使用AppCmd.exe 我正在使用PHP的FastCGI来处理请求。 我已经在服务器级configuration了FastCGI池。 现在我需要设置一个新的处理程序来处理FastCGI模块的* .php请求。 PHP文档和各种微软文档都说这个AppCmd命令可以做到这一点: %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+ [name='PHP_via_FastCGI',path=' .php',verb=' ',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either'] 来源: http : //php.net/manual/de/install.windows.iis7.php 虽然这确实起作用,但它也将处理程序放在服务器级别上。 虽然我需要处理程序在网站上。 我尝试了各种组合,最后拿出下面的命令: set config "Default Web Site/" -section:system.webServer/handlers /+[name='PHP_via_FastCGI',path=' .php',verb=' ',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either'] 这告诉我,configuration不能在这个层面上完成。 但是,当我使用UI来添加处理程序的网站,我可以做到没有问题。 所以我觉得我的命令还是错的。 我在这里做错了什么? 干杯和thx很多,Worp
我试图在CentOS上用nginx在我的服务器上设置roundcube。 本教程说: 将以下内容添加到/ etc / nginx / fastcgi_params的底部: # Roundcube config fastcgi_keep_conn on; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 但是,我收到这个错误,试图重新启动nginx服务 unknown directive "fastcgi_keep_conn" in /etc/nginx/fastcgi_params:26 我GOOGLE了它, 这个答案说: 似乎nginx是build立在没有fastcgi支持下 但我不知道如何使nginx支持fastcgi 任何人都可以告诉我如何?
我试图在我的服务器上执行一个PHP文件在url /〜/ / / /~nik/t.php (实际文件在/home/nik/public_html/t.php )。 这是我的PHP设置的样子: location ~ ^/~(.+?)(/.*)\.php$ { alias /home/$1/public_html; # What should this regex be? fastcgi_split_path_info ^/~nik/(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } 我一直得到一个404,当我回答return 404;条款的return 404; ,我可以看到错误: Unable to open primary script: /home/nik/public_html/~nik/t.php (No such file or directory) 你可以看到我的configuration有什么问题,或者指向我有关如何做到这一点的文档? 不幸的是,先进的正则expression式知识是configurationnginx的要求。
据我了解, php-fpm通过pipe理预先加载的PHP解释器进程的场,使得PHP页面响应更快,因此最终用户不会经历初始化PHP子系统的开销,但是一旦PHP页面开始执行,只要在“正规”的CGI下。 这有点像在mod_perl下运行一个Perl脚本 – 解释器没有运行得更快,因为它绑定到了web服务器可执行文件,它只是启动得更快。 我是对的,还是有一些微妙的事情发动机罩,使整体运行速度更快? 问的原因是我有一个PHP应用程序,我想定期运行(我每隔X秒运行一个“wget”的URL)。 我不担心响应时间,因为它的周期性,但我很困扰执行时间。
我在使用FastCGIcaching的NGINX服务器上使用基于php的博客。 没有这个caching,很容易更新页面浏览与每个页面加载一个特定的url。 当FastCGIcaching处于运行状态时,浏览量不会更新。 我正在考虑实现基于像素的跟踪,所以当该页面不在caching中并获取cachingMISS时,请求将打到实际页面,然后我可以借助访问日志(24小时)更新浏览量。 这将是好的或任何人都可以build议一个更好的解决方法来实现这一目标?