设为首页 收藏本站
查看: 1150|回复: 0

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-21 13:31:35 | 显示全部楼层 |阅读模式
  lnmp的全名是linux+nginx+mysql+php,既然是全面优化那我们就从linux系统的选择入手。debian系统可以算是 linux各分支中做的比较突出的一类,连谷歌都抛弃linux订制,由此可见debian系统之优秀,相较其它linux系统debian具有稳定、占 用资源少对于网站web环境来说这些正是我们所需要的,其中debian6版本算是这一优点的集中体现。目前市面上有很多的安装包,其中军哥的lnmp是 被站长使用较多的一种。

也许有朋友会问小三啊,为啥不用lanmp呢?
参考:lnmp和lnmpa性能测试
用nginx的目地是为提高并发能力。
在同一台机器上使用nginx反向 apache,等于脱裤子放屁。+_+*
  一: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"
  最后全部修改完记得重启生效:/root/lnmp restart

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102220-1-1.html 上篇帖子: LNMP环境出现”504 gateway time-out”错误的解决方案 下篇帖子: 解决LNMP环境下WordPress后台缺少”WP-ADMIN”路径
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表