• lnmp全面优化集合nginx+mysql+php


    一:lnmp的nginx优化

    主要是修改 /usr/local/nginx/conf/nginx.conf

    1.军哥的lnmp安装包中nginx的worker_processes默认设置是1,这里我们要根据服务器cpu具体的核心数来优化。通常4核的CPU我会把值设为3。

    2核CPU,开启2个进程
    worker_processes 2;
    worker_cpu_affinity 01 10;
    
    4核CPU,开3个进程
    worker_processes 3;
    worker_cpu_affinity 0010 0100 1000;
    
    8核CPU,开8个进程
    worker_processes 8;
    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
    

     worker_processes参数解析可参考:worker_processes详解

     2.worker_rlimit_nofile参数默认是5xxxx.

    worker_rlimit_nofile 65535;
    
    events
    	{
    		use epoll;
    		worker_connections 32700;
    	}
    

    worker_rlimit_nofile参数讲解可参考:nginx优化参数详解

    添加防压力测试
    if ($http_user_agent ~ ApacheBench|WebBench|Jmeter|must-revalidate|Havij) {retun 503;}
    添加针对CVE-2013-4547链接空格的补丁
    if ($request_uri ~ " ") {return 444;}

    二:lnmp的mysql优化

    用/usr/local/mysql/share/mysql/目录下的my-large.cnf 文件替换根目录etc下的my.cnf文件

    my-huge.cnf: 适合1GB - 2GB RAM主机使用
    my-large.cnf: 适合 512MB RAM使用
    my-medium.cnf: 只有 32MB - 64MB RAM使用
    my-small.cnf:小于64MB 用,MySQL会占用很少资源
    my-innodb-heavy-4G.cnf 适合4G以上使用

    禁用mysql日志:
    修改 /etc/my.cnf 文件
    在log-bin=mysql-bin和binlog_format=mixed 
    这两行前面加#注释掉即可。
    
    在query_cache_size= 16M下面添加一行:
    tmp_table_size = 200M
    

    mysql参数讲解可参考:mysql优化  

    三:lnmp的php相关参数优化

    优化主要是修改/usr/local/php/etc/目录下的php-fpm.conf和php.ini文件

     1.php-fpm.conf参数优化

    删除value name="display_errors" 这一行的代码,防止坏人从PHP错误中找到漏洞。

    max_children默认参数是开启5个进程。数值要根据内存大小来定,每一个php-cgi所耗费的内存在20M左右。

    126M内存默认即可
    256M 10个
    512M 20个
    1G 40个
    

    request_terminate_timeout参数默认是0s,修改为300s

    rlimit_files参数默认5xxxx,修改为65535

    php-fpm参数讲解可参考:php-fpm详解

    2.php.ini参数优化

    disable_functions = 默认禁用了一些参数,PHP中有一些函数的风险性还是相当大的,如果允许这些函数执行,当PHP 程序出现漏洞时,损失是非常严重的

    fsockopen这个参数用的比较多,可以删除。
    
    另外从安全方面考虑可隐藏PHP版本号
    将文件里面的 expose_php = On 
    修改为 expose_php = Off 即可
    
    将display_errors =On改为Off
    

    最后修改最大连接数使重启后也可生效,在/etc/profile 最后增加一行 ulimit -SHn 65535

    另外军哥的LNMP安装包里有一个eAccelerator的安装文件。最好装一下。这个是加速PHP缓存的还不错。
    关于eAccelerator的设置我就给出两个修改的地方吧:

    eaccelerator.shm_size="16" 
    

    #默认是占用16M共享内存,军哥好像是1,你就改成16吧。大小也可根据你的内存情况设置。

    另外军哥默认是eaccelerator缓存目录是/usr/local/eaccelerator_cache,这样用硬盘缓存的话,某些情况会影响php的响应时间。我们可以直接放到共享内存里面老。
    运行命令:mkdir -p /dev/shm/eaccelerator_cache
    修改目录为以下就OK了。

    eaccelerator.cache_dir="/dev/shm/eaccelerator_cache"
    

    最后全部修改完记得重启生效:lnmp restart

      

     

  • 相关阅读:
    MyBatis:2
    MyBatis:1
    synchronized锁普通方法和锁静态方法
    打印倒直角三角形
    迭代器模拟for循环
    Python迭代对象与迭代器
    ffmpeg用法(心得体会还有你见过的用法)
    ffmpeg命令选项解释
    ffmpeg一些filter用法、以及一些功能命令
    FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
  • 原文地址:https://www.cnblogs.com/sunbeidan/p/5016635.html
Copyright © 2020-2023  润新知