加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 运营中心 > LNMP > 正文

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
  
 
 

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读