我会尽力在这方面非常具体 – 这并不容易,所以请尽量遵循。 我们有一个在NGINX上使用PHP运行的脚本 – PHP-fpm FastCGI。 这个脚本获取用户试图访问的信息,并实时运行一些algorithm。 它不能是在后台运行的预定进程。 有时候,甚至需要5-12秒的时间来加载页面 – 这没关系 。 一般情况下,我们从用户那里收集数据,并向第三方服务器发出几个输出请求,收集数据,分析数据并返回给用户。 问题是,有很多用户运行这个脚本,服务器变得非常繁忙 – 因为它们都是服务器上的活动连接,等待响应。 我们有2个服务器在1个负载均衡器下运行,这还不够。 有时服务器一次有更多的1500个活动连接。 你可以想象这些服务器如何在这个时间段内做出反应。 我正在寻找一个解决scheme。 我们可以为LB添加更多的服务器,但是这是唯一的解决scheme,这听起来很荒唐。 我们把这个脚本运行了一遍,最大限度地优化了脚本,我可以向你保证 – 脚本的长时间运行没有真正的解决scheme,因为它依赖于第三方服务器,需要时间来响应实时stream量。 有没有一个你能想到的解决scheme,保持这个脚本 – 但不知何故降低这些活跃连接对整体服务器function的影响? 有时,他们只是停下来回应。 非常感谢您的阅读!
我在Centos 6服务器上安装了一个Wordpress繁忙的博客: CPU:Intel Xeon E3 1245v2 – 4核心 – 8线程RAM:32 Go DDR3 Nginx,PHP-FPM和APC 版: PHP 5.4.9(fpm-fcgi)(内置:2012年11月22日上午11:33:35) nginx版本:nginx / 1.2.5 该网站第一天工作,我用UNIX套接字而不是TCP PHP-FPM的错误日志: [14-Dec-2012 01:33:45] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 3 idle, and 205 total children [14-Dec-2012 01:34:08] WARNING: [pool www] seems busy (you […]
我刚刚开始与Zend框架2,这似乎是一个简单的任务,但由于某种原因,它不起作用。 我试图简单地得到查询参数: controller/action?name=something 我试过使用: $this->params()->fromQuery() $this->plugin('params')->fromQuery(); 我相信两者是相同的,但是,当我有参数设置返回空数组。 我的路线如下所示: 'users' => array( 'type' => 'Zend\Mvc\Router\Http\Literal', 'options' => array( 'route' => '/users/search', 'defaults' => array( 'controller' => 'Module\Controller\Users', 'action' => 'search', ), 'may_terminate' => true, 'child_routes' => array( 'query' => array( 'type' => 'Query', ), ), ), ), 任何想法我做错了什么?
我尝试使用nginx在我的覆盆子pi中将语言环境从fr_FR设置为PHP(php-fpm)中的us_US。 这是我的代码: <?php system('locale -a'); /* C POSIX en_US.utf8 fr_FR fr_FR.iso88591 fr_FR.iso885915@euro fr_FR.utf8 So the en_US locale is well installed */ echo locale_get_default(); /* fr_FR */ echo setlocale(LC_ALL, '0'); /* LC_CTYPE=fr_FR.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C; LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C; LC_MEASUREMENT=C;LC_IDENTIFICATION=C */ var_dump(setlocale(LC_ALL, 'en_US.UTF-8', 'en_US.UTF8')); /* bool(false) */ var_dump(setlocale(LC_ALL, 'fr_FR.UTF8')); /* string(10) "fr_FR.UTF8" useless, but it shows that setlocale works with the already […]
我正在为安全性configuration一个新的symfony安装,但我的login表单将不会performance。 无论何时我被redirect到login页面,symfonyredirect到https,并将80添加到域。 这是我的security.yml # app/config/security.yml security: firewalls: login: pattern: ^/login anonymous: true main: pattern: ^/ anonymous: false form_login: login_path: /login check_path: /login_check logout: path: /logout target: /home access_control: – { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http } – { path: ^/secure, roles: IS_AUTHENTICATED_FULLY } – { path: ^/secure/max, roles: ROLE_ADMIN } providers: in_memory: memory: users: […]
的背景 我正在使用在Nginx上运行的CodeIgniter 2.1.4和PHP 5.3。 我有一个HTML表单,表示同质数据的基本行。 每个“行”有几个<input />字段,每个都有相同的名称。 这是一个简单的例子: <input type="text" name="firstname[]" /> <input type="text" name="lastname[]" /> 所以,我有很多firstname[]input, lastname[]input等。提交表单(操作是POST )后,我检索像这样的控制器方法中的数据(请注意,我使用CodeIgniter): $firstnames = $this->input->post('firstnames'); $lastnames = $this->input->post('lastnames'); 这些variables是包含表单中相应行的值的数组,从这里我对这些数据做了一些处理。 问题 当表单中的行数很大(几百)时,生成的PHP数组的大小与表单中input的数量不匹配 – 例如,表单可能有200个firstnameinput,但$firstname数组只有167.另外, $lastnamevariables也有不同的大小 – 166。 当表单的元素数量较less时,一切正常。 我的理论是,我超过了某种最大尺寸设置或缓冲区中的某个地方,导致表单数据被截断。 是否有一个PHP或CodeIgniter或nginx设置为“最大表单大小”,我不知道? 对于它的价值,在使用application/x-www-form-urlencoded或multipart/form-data作为multipart/form-data的内容types时,我已经看到了相同的行为。 我错过了什么?
我使用命令Ubuntu: sudo apt-get install phpmyadmin 在安装过程中,我通知服务器的selecttypes: apache2和lighttpd。 我的服务器仅在Nginx + php_fpm上构build。 我如何安装phpmyadmin没有selectapache2或lighttpd? 对不起,愚蠢的问题
我正在开发一个Web应用程序,X-Accel-Redirect头只能在没有扩展名的文件中工作。 出于某种原因,如果我向文件名添加扩展名,X-Accel-Redirect不起作用。 工作示例: X-Accel-Redirect: /protected_files/myfile01.z 非工作示例: X-Accel-Redirect: /protected_files/myfile01.zip 我正在使用nginx 1.7.1。 最初,怪异的部分是,如果我改变扩展部分(在这种情况下“.zip”)与mime.types文件中没有注册的东西,它工作正常(显然我相应地重命名文件),但与扩展名指向到一个知道MIMEtypes(如“zip”,“jpg”,“html”)将生成一个“404未find”的错误。 更新:似乎这个问题是由于这个规则,我在conf文件中: location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { try_files $uri =404; } 出于某种原因,nginx似乎首先在文件系统中testing文件的存在性,然后尝试“内部/别名”path。 任何有关如何让nginx将所有来自X-Accel-Redirect的“/ protected_files”直接过滤到“internal”而不是先尝试在其他path中查找的想法? 提前致谢。
从Apache移动到一个新的Nginx服务器我找不出这个新的重写代码… 我有一个网站,主要CodeIgniter应用程序,让我们说www.codeigniterapp.com 。 然后我有单独的CodeIgniter应用程序,如www.codeigniterapp.com/random-directory/app2等 主要的CodeIgniter应用程序工作正常,但加载任何其他的比基础的url时,子目录中的应用程序将失败。 例如, www.codeigniterapp.com/random-directory/app2有效,但是www.codeigniterapp.com/random-directory/app2/some-action-这将打印出404错误。 我需要一些行动在这里被发送到index.php。 它的工作原理是这样的: www.codeigniterapp.com/random-directory/app2/index.php?/some-action-here 所以我需要帮助创buildNginx重写代码。 app2 -directory中的旧apache .htaccess是这样的: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /random-directory/app2/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> 现在我正在使用一个像这样的Nginx(Code Igniter optimized)vhostconfiguration: server { listen 80; server_name codeigniterapp.com www.codeigniterapp.com; root […]
我有memcached安装和工作经testing: nc -U /var/run/memcached/memcached.sock stats STAT pid 16360 STAT uptime 2246 STAT time 1412217254 STAT version 1.4.14 (Ubuntu) STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.032563 //and so on… 我遇到的问题是,当symfony加载并调用session_start()时,会引发一个错误: 致命错误:初始化存储模块失败:/ var / www / project / vendor / symfony / symfony / src / Symfony / Component / HttpFoundation / Session / Storage中的用户(path:/var/run/memcached/memcached.sock)第147行的NativeSessionStorage.php […]