• 30、LNAP(php和nginx相关优化)


    30.1、php-fpm.conf参数优化:

    [global]

    pid = run/php-fpm.pid

    #php后台运行pid路径

    error_log = log/php-fpm.log

    #php的错误日志路径

    rlimit_files = 65535

    #php打开文件的描述符大小


    [www]

    user = nginx

    #php所使用的虚拟用户

    group = nginx

    #php所使用的虚拟用户组

    listen = 127.0.0.1:9000

    #php所监听的ip及端口号

    pm = dynamic

    #开启php进程池的动态设置,静态用static

    pm.max_children = 70

    #在动态方式下限定php-fpm的最大进程数。静态方式下指开启的php-fpm进程数量。

    #每个进程数占用20M到30M的内存,以4G的内存为例:4*1024/2/30

    pm.start_servers = 40

    #动态方式下的起始php-fpm进程数量。

    #min_spare_servers + (max_spare_servers - min_spare_servers) / 2

    pm.min_spare_servers = 30

    #动态方式空闲状态下的最小php-fpm进程数量。

    pm.max_spare_servers = 50

    #动态方式下空闲状态的最大php-fpm进程数量。

    pm.max_requests = 5000

    #php-fpm工作进程处理完多少请求后自动重启,主要目的就是为了控制请求处理过

    #程中的内存溢出,使得内存占用在一个可接受的范围内,默认是0,表示无休止的

    #接受请求。不易设置过大,根据需求进行设置。

    request_terminate_timeout = 10

    #php脚本最大执行的时间,默认值为 0 秒,也就是说 PHP 脚本会一直执行下去,

    #这样,当所有的 php-cgi 进程都卡在 file_get_contents() 函数时,这台

    #Nginx+PHP 的WebServer已经无法再处理新的 PHP 请求了。该参数设置为10s或者

    #一个合理的值,该参数设置过大或过小都不可。

    rlimit_files = 65535

    #php打开文件的描述符大小



    报错说明:

    1、

    pm.max_requests

    request_terminate_timeout

    #以上两个参数如果设置不当会导致nginx error.log 报如下错误,同时网页会短暂出现“502 Bad Gateway”错误。

    #[error] 21556#0: *4004 recv() failed (104: Connection reset by peer) while reading response header from upstream,

    2、

    slowlog = log/$pool.log.slow

    #慢请求的记录日志文件路径

    request_slowlog_timeout = 10

    #当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中。设置为 '0' 表示 'Off'。

    #当上面两个参数开启后可能会报ERROR: failed to ptrace(PEEKDATA) pid 27077: Input/output error (5)


    30.2、nginx.conf参数优化:

    #网页报错:error Connection timed out and 504 error

    #nginx报错:[error] 11130#0: *52557 upstream timed out (110: Connection timed out) while reading response header from upstream,

    #在server标签内增加以下内容


    large_client_header_buffers 4 16k;

    #用于读取大型客户端请求头的缓冲区的最大数量和大小。

    client_max_body_size 30m;

    #客户端请求服务器最大允许大小,包括上传和下载。

    #如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。

    client_body_buffer_size 30m;

    #设置请求主体的缓冲区大小。 如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件,默认路径是/tmp/。

    #如果追求效率,就设置和client_max_body_size相同的值,这样就不会存储临时文件,直接存储在内存了。

    fastcgi_connect_timeout 300;

    #连接到后端fastcgi超时时间

    fastcgi_read_timeout 300;

    #接收fastcgi应答超时时间(这个指定值已经完成两次握手后向fastcgi传送请求的超时时间)。

    fastcgi_send_timeout 300;

    #向fastcgi请求超时时间,同理也是2次握手后。

    fastcgi_buffer_size 64k;

    #读取fastcgi应答第一部分需要多大缓冲区,该值表示使用1个64kb的缓冲区读取应答第一部分(应答头),可以设置为fastcgi_buffers选项缓冲区大小。

    fastcgi_buffers 4 64k;

    #指定本地需要多少和多大的缓冲区来缓冲fastcgi应答请求,假设一个php或java脚本所产生页面大小为256kb,那么会为其分配4个64kb的缓冲来缓存。

    fastcgi_busy_buffers_size 128k;

    #默认值是fastcgi_buffers的2倍

    fastcgi_temp_file_write_size 128k;

    #写入缓存文件使用多大的数据块,默认值是fastcgi_buffers的2倍










  • 相关阅读:
    恭喜你,你毕业了
    用VB.Net2008制作安装程序详细步骤(菜鸟级别,高手勿进)
    交通标志结构计算软件开发进程
    【工作笔记002】在TC中建立应用于出行分布的阻抗矩阵(最短路矩阵)
    VB.Net 2008 引用Excel12
    开博,开播。
    【推荐】万物兴歇——衰老与寿命的演化
    一张交叉口渠划的彩色平面图
    萦绕在头脑中的思路_我的编程梦们 【更新至2010.06.03】
    8月份的回顾
  • 原文地址:https://www.cnblogs.com/LiuChang-blog/p/12783680.html
Copyright © 2020-2023  润新知