• Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 + 最大文件描述符


    https://www.cnblogs.com/zengkefu/p/5602473.html
    最大文件描述符

    https://blog.csdn.net/fanren224/article/details/79971359

    https://www.cnblogs.com/ruiy/p/10761004.html

    Linux内核本身有文件描述符最大值的**,你可以根据需要更改:

    系统最大打开文件描述符数:/proc/sys/fs/file-max
    临时性设置:echo 1000000 > /proc/sys/fs/file-max
    永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

    2、用户级设置
    vi /etc/security/limits.conf
    httpd soft nofile 4096
    httpd hard nofile 10240
    httpd是用户,可以使用通配符*表示所有用户。

    *               -       nofile          60000
    要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
    查看 /etc/pam.d/login 文件中有:
    session required /lib/security/pam_limits.so
    https://www.centos.bz/2012/05/linux-increase-the-maximum-number-of-open-files/

    TCP/IP参数配置
    
    修改文件/etc/sysctl.conf,配置网络参数。
    net.ipv4.tcp_wmem = 4096 87380 4161536
    net.ipv4.tcp_rmem = 4096 87380 4161536
    net.ipv4.tcp_mem = 786432 2097152 3145728
    
    最大文件描述符
    
    Linux内核本身有文件描述符最大值的**,你可以根据需要更改:
    
    系统最大打开文件描述符数:/proc/sys/fs/file-max
    临时性设置:echo 1000000 > /proc/sys/fs/file-max
    永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

    1.nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

    nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

    2.PHP-FPM是什么?

    一个PHP FastCGI管理器,是只用于PHP的

    PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

    3.下面是对php-fpm运行用户进行设置

    1
    2
    3
    cd /usr/local/php
    cp etc/php-fpm.conf.default etc/php-fpm.conf
    vi etc/php-fpm.conf
     

    修改
    user = www-data
    group = www-data

    如果www-data用户不存在,那么先添加www-data用户
    groupadd www-data
    useradd -g www-data www-data

    4.修改nginx配置文件以支持php-fpm

    nginx安装完成后,修改nginx配置文件为,nginx.conf

    其中server段增加如下配置,注意标红内容配置,否则会出现No input file specified.错误

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#(备注:访问过程中可能会报错:”File not found“,解决办法是吧default.conf 文件中改为  /var/www/html$fastcgi_script_name;

    参考:https://blog.csdn.net/jiashiwen/article/details/48806243
    include fastcgi_params;
    }

    5。启动php-fpm和nginx

    ########################################################### 

     
    1
    2
    3
    4
    /usr/local/php/sbin/php-fpm
    #手动打补丁的启动方式/usr/local/php/sbin/php-fpm start
     
    sudo /usr/local/nginx/nginx
     5.注意点: chown www-data:www-data /var/www/app/ -Rf
    6.cat nginx.conf
    user www-data www-data;
     
    #############################################
    LNMP 架构优化 优化那些 ,特别影响性能那些参数,?
    1.
    expires 180d;

    expires缓存调优

    缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存365d,css,js,html可以缓存个10来天,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来, Expires缓存配置在server字段里面。
    ---------------------
    2.gzip on;     #开启压缩功能

    3.1、Nginx连接超时时间

    参考:https://blog.csdn.net/qq_39591494/article/details/78829314

    ################################################################

    3.2. 异步非阻塞机制
    每个 工作进程 使用 异步非阻塞方式,可以处理 多个客户端请求。
    
    每个新连接都会创建另一个文件描述符,并消耗工作进程中少量的额外内存。每一个连接的额外消耗都很少。
    NGINX进程可以保持固定的CPU占用率。当没有工作时,上下文切换也较少。

    1.调优的思路:

    nginx要响应请求的话,必须要:

    1.要建立socket连接

    2.是要读本地的文件

    所以参考照上面的优化思路,我们可以更改上面的系统级别的参数,从而进行调优:
    1 echo 50000 > /proc/sys/net/core/somaxconn  --- 打开的最大文件的数目
    2 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle --- 加快tcp连接的回收
    3 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse   --- 空的tcp是否允许回收利用
    4 echo 0 > /proc/sys/net/ipv4/tcp_syncookies --- 不做洪水抵御
    
    参考:https://www.cnblogs.com/shangzekai/p/4689772.html
    tcp/ip调优 https://blog.csdn.net/robertsong2004/article/details/41725715

     
  • 相关阅读:
    (SQL)如何将exec执行结果放入外面的变量中--动态sql语句
    Building and Installing ACE on Win32 with MinGW/ MSYS
    TAO和CIAO 简介
    Papervision3D 基础
    ACE网络开发中,各种Reactor实现的总结
    [转]第四期FLASH专家交流会 7月24日 广州东方国际饭店
    ACE介绍及简单服务器实例
    ACE相关资源
    Windows下用Eclipse搭建C/C++开发环境
    ACE的编译和安装,for windows、Linux
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/10089349.html
Copyright © 2020-2023  润新知