这是我的第一个问题! 几天前,我发现nginx出了点问题:域AC好,其他的超时。 之后:其他域名可以,第一次超时; 或者每个域都工作正常。 如果我重新启动nginx – 没有任何改变。 重新启动后,一切正常。 也许是因为有时候访问者和nginx的连接太多而无法处理? (以前有一个Apache,它偶尔冻结VDS)。 但是在日志中没有错误,没有什么。 在最高输出中,我看到只有2-4mb的交换空间被使用。 它是:arch linux,nginx,php-fpm。 configuration文件:用户http http; worker_processes 1; error_log /var/log/nginx/nginx.error.log; events { worker_connections 2048; } http { include mime.types; default_type application/octet-stream; error_log /var/log/nginx/http.error.log; sendfile on; gzip on; gzip_static on; gzip_vary on; client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 5m; large_client_header_buffers 2 1k; client_body_timeout 10; client_header_timeout 10; keepalive_timeout […]
该网站使用nginx + php-fpm。 今天,访问一些页面返回502状态在几秒钟内(不同于由PHP脚本超时引起的502),而其他页面保持服务。 php-fpm的状态页面显示所有进程都active ,但是它们都在State: finishing ,并且服务器的负载很低。 pid: 12775 state: Finishing start time: 18/May/2013:16:50:27 +0800 start since: 755 requests: 59 request duration: 743543095 request method: GET request URI: /index.php content length: 0 user: – script: /data/webserver/index.php last request cpu: 0.00 last request memory: 0 我想知道为什么会发生这种情况,尽pipe在重新启动php-fpm后它变得很好。
我有一个网站运行Magento在以下设置: Apache 2.4与mpm_worker PHP-FPM 服务器内存总量:14GB(10GB可用于Apache / PHP) 每个PHP-FPM进程消耗大约80MB的RAM。 我想微调PHP-FPM和mpm_worker的设置。 阅读文档我对PHP-FPM和mpm_worker中的选项之间的关系感到困惑。 例如,PHP-FPM具有configuration: pm.min_spare_servers , pm.max_spare_servers , pm.start_servers和max_children 。 我明白这些选项对于PHP-FPM意味着什么。 但是,mpm_worker具有以下configuration: MinSpareThreads , MaxSpareThreads , StartServers和ThreadLimit 。 再次,孤立到mpm_worker我明白他们做什么。 我的问题是:这些configuration如何相互关联? 比方说,我设置StartServers=2和ThreadsPerChild=25 。 这会给我50个线程开始与Apache / mpm_worker。 如果我然后设置pm.start_servers = 50 ,PHP-FPM最初会产生50个进程。 那么这50个“Apache”线程和50个“PHP-FPM”进程之间的关系是什么? 每个Apache线程是否都使用一个PHP-FPM进程? 我希望有人能够对此有所洞察。 谢谢!
我的WordPress的网站是在群集环境中使用NFS,Nginx的,PHP的FMP,MySQL的基础设施托pipe在亚马逊ec2.Under负载/stream量php5-fpm进程进入D状态(不可连续的睡眠)和网站崩溃。 在检查与命令 echo w > /proc/sysrq-trigger; dmesg -c | less; 发现php-fpm处于阻塞状态内核堆栈跟踪 [6615425.408345] SysRq:显示阻塞状态[6615425.408362]任务 PC堆栈PID父亲[6615425.408444] PHP5-FPM d 0000000000000000 0 16616 12079 00000000 [6615425.408453] ffff880001793938 0000000000000246 ffff880001793fd8 0000000000014580 [6615425.408457] ffff880001793fd8 0000000000014580 ffff88001cad1770 ffff88001cad1770 [6615425.408460] ffff88006c88ba00 0000000000000082 ffffffffa0044190 ffff8800017939b0 [6615425.408463]呼叫跟踪:[6615425.408491] []? __rpc_wait_for_completion_task + 0x30 / 0x30 [sunrpc] [6615425.408497] [] schedule + 0x29 / 0x70 [6615425.408506] [] rpc_wait_bit_killable + […]
我最近把所有的实验室服务器从apache pre_fork / mod_php切换到了apache worker / fcgi / php-fpm,并且在正确设置了一切后,我注意到了最后一个问题。 php-fpm将它自己的日志logging“标题”添加到php错误日志中。 所以这(php-fpm添加它自己的头): Sep 21 22:01:50 dev-a-1 php-fpm: pool www: 2014-09-21@22:01:50 dev-a-1.sn1.j1n.us DEBUG(7): VB9KzAoAAAQAAFGbEuQAAAAQ: Hobis_Api_Bootstrap initalized (should only happen once) 应该看起来像这样(使用mod_php的日志条目的一个例子): 2014-09-21@22:01:50 dev-a-1.sn1.j1n.us DEBUG(7): VB9KzAoAAAQAAFGbEuQAAAAQ: Hobis_Api_Bootstrap initalized (should only happen once) 因为我将所有日志logging到系统日志,并在那里过滤,所以我可以添加一个正则expression式: .*(pool www:) 但我希望有一个更优雅的解决scheme。 有没有一个configuration选项,我可以设置,所以php-fpm只是直传? 我试着将catch_workers_output设置为yes,但是没有帮助。
我已经成功地将一个wordpress服务器迁移到新的VPC(亚马逊),但看起来像php-fpm无法处理图像上传。 当我上传一张图片时,它会部分显示,然后停顿,甚至无法启动。 之后,它挂起。 如果我重新启动php-fpm,服务器会恢复生机,但是图像却没有上传。 所以我想这是一个php-fpm无法处理file upload的问题。 我logging了php-fpm,但是它不会抛出任何错误,只有守护进程启动/停止 [26-Sep-2014 09:17:24] NOTICE: Terminating … [26-Sep-2014 09:17:24] NOTICE: exiting, bye-bye! [26-Sep-2014 09:17:24] NOTICE: fpm is running, pid 290 [26-Sep-2014 09:17:24] NOTICE: ready to handle connections [26-Sep-2014 09:17:24] NOTICE: systemd monitor interval set to 10000ms nginx中的错误日志看起来像这样 2014/09/26 09:17:24 [error] 276#0: *1 recv() failed (104: Connection reset by peer) while […]
我有一个与我的容器相互沟通的问题。 容器的连接正在工作,但php-fpm过程不起作用。 PHP容器= 172.17.2.106 nginx容器= 172.17.2.107 这是我在nginx容器上运行的唯一站点的nginxconfiguration。 upstream phpcgi { server php:9000; } server { listen 80 ; root /srv/www; index index.html index.htm index.php; server_name localhost; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: fastcgi_pass […]
我有这个问题: Apache 2.2.26 PHP 5.4.32 PHP-FPM 5.4.32 Zend OpCache 7.0.3 PHP-FPMconfiguration: [testuser] listen = /dev/shm/testuser-php.sock listen.owner = testuser listen.group = apache listen.mode = 0660 user = testuser group = testuser catch_workers_output = yes pm = ondemand pm.max_children = 64 pm.max_requests = 10000 pm.process_idle_timeout = 20s php_admin_value[error_log] = /home/testuser/var/php-fpm/error.log php_value[memory_limit] = "1024M" 〜mod_fastcgi.conf: <IfModule mod_fastcgi.c> FastCGIExternalServer […]
我正在运行安装了lighttpd的服务器。 它运行php5-fpm并服务于自己的云服务器。 Ubuntu服务器14.04 lighttpd / 1.4.33(ssl)(Jan 28 2014 17:26:04) – 一个轻快的networking服务器 PHP 5.5.9-1ubuntu4.5(fpm-fcgi)(内置:2014年10月29日11:59:19) server.modules = ( "mod_access", "mod_alias", "mod_compress", "mod_redirect" ) server.document-root = "/var/www" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error.log" server.pid-file = "/var/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" server.port = 80 index-file.names = ( "index.php", "index.html", "index.lighttpd.html" ) url.access-deny = ( "~", […]
我最近把一个opencart实例从Apache + mod_php切换到了nginx + fastcgi + php-fpm。 我一直试图通过fastcgi-cachecaching大多数页面。 不幸的是,许多用户开始报告鬼命令或接pipe其他帐户(weeee !!!!)从彻底挖掘,似乎页面被caching与set-cookie! 因此,没有发送预先存在的会话cookie的后续用户正在获取caching启动器的会话cookie。 坏! 根据所有的文件那里,下面的设置应该是防止这种情况发生(至less我的理解:) fastcgi_pass_header Set-Cookie; fastcgi_pass_header Cookie; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; 当我通过单个caching看,我注意到几个页面与set-cookie:[somerandomsessionid]根据fastcgi_cache_valid下的nginx文档… 如果头部包含“Set-Cookie”字段,则不会caching这样的响应。 通过包含Set-Cookie与fastcgi_ignore_headers,我告诉它cachingset-cookie? 在许多例子中, Set-Cookie是fastcgi_ignore_headers参数的一部分。 还是应该防止Set-Cookie被处理,即使它明显在caching文件中? 以下是我的configuration的相关部分: 位置〜.php $ {… fastcgi_next_upstream error timeout invalid_header http_500 http_503; fastcgi_cache OPENCART; fastcgi_cache_bypass $no_cache; fastcgi_no_cache $no_cache; fastcgi_cache_purge $purge_method; fastcgi_cache_methods GET HEAD; fastcgi_cache_valid 200 5m; fastcgi_cache_use_stale error timeout invalid_header […]