LNMP系统服务搭建过程详解
发布时间:2023-02-17 14:03:06 所属栏目:LNMP 来源:互联网
导读:图文解释 和LAMP不同的是LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)其他都一样。目前这种环境应用的也是非常之多。Nginx设计的初衷是提供一种快速高效多并发的web服务软件。在静态页面的处理上Nginx的确胜Apache一筹,然而在动态页面的处理上Ng
pm = dynamic 表示以动态的形式启动,在PHP5.3 版本以后它可以支持动态和静态了,如果是静态,即 pm=static时,下面的配置只有pm.max_children管用。 pm.max_children 表示启动几个 PHP-fpm 的子进程。如果是 dynamic,下面的配置会生效,pm.max_children 表示最大可以启动几个子进程。 pm.start_servers 表示一开始启动几个子进程。 pm.min_spare_servers 表示当 PHP-fpm 空闲时最少要有几个子进程,即如果空闲进程小于此值,则创建新的子进程。pm.max_spare_server 表示当 PHP-fpm 空闲时最多有几个子进程,即如果空闲进程大于此值,则会进行清理。 pm.max_requests 表示一个子进程最多可以接受多少个请求,比如设置为 500 那么一个子进程受理 500 个请求后自动销毁。 rlimit_files 表示每个子进程打开的多少个文件句柄。 七、常见的502错误问题 1、配置错误 因为Nginx找不到PHP-fpm了,所以报错,一般是fastcgi_pass后面的路径配置错误了,后面可以是socket或者是127.0.0.1:900。要注意与PHP-fpm.conf配置文件中[listen]字段值保持一致。 2、资源耗尽 lnmp架构在处理PHP时,Nginx直接调取后端的PHP-fpm服务,如果Nginx的请求量偏高,我们又没有给PHP-fpm配置足够的子进程,那么PHP-fpm就会资源耗尽,一旦资源耗尽Nginx找不到PHP-fpm就会出现502错误?? 解决方案: 去调整PHP-fpm.conf中的pm.max_children数值,使其增加,但是也不能无限增加,毕竟资源有限,一般4G内存机器如果跑PHP-fpm和Nginx,不跑MysqL可以设置为150,8G为300以此类推 3、其它原因 除了上面的两种错误还有其他的原因,很少有,我们可以借助Nginx的错误日志来进行排查vim /usr/local/Nginx/logs/Nginx_error.log 我们也可以给日志定义级别vim/usr/local/Nginx/conf/Nginx.conf 找到error_log,默认是crit最严谨的就行,也可以改成debug显示的信息最全面,但是很容易撑爆我们的磁盘。检查Nginx是以哪个用户身份运行 grep Nginx vim /usr/local/PHP/etc/PHP-fpm.conf[www] listen.owner = nobody listen.group = nobody 使用版本高于5.4(含5.4),默认监听的sock文件权限是所有者只读,用户组和其它用户没有任何权限。所以Nginx的启动用户nobody没有办法读这个socket文件,最终导致502,这个问题可以在Nginx的错误日志中发现。解决办法很简单,上面给出的配置文件就有避免这个问题的配置。 listen.owner = nobody 定义属主listen.group = nobody 定义属组 这两个配置就是定义socket的属主和属组是谁。除了这个还有一种方法这样nobody也可以有读取权限了。 listen.mode = 777 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |