现在的位置:首页>空间域名>正文

lnmp建站环境全面优化nginx+mysql+php

2016年09月02日 ⁄ 共 2608字 评论 1 条

很多单独买VPS的朋友,想必都是使用的军哥一健安装包搭建的网络环境,部落接触过的很多朋友,基本都是使用LNMP,当然,也有牛逼的,自动手搭建网络环境.而使用lnmp,就会要想到对其进行优化,这时我们需要根据自己的VPS配置来操作了.这里部落补充一下,实际上,军哥的lnmp安装包,其上面的环境优化,已经做得很不错了.

另外,有的时候,像网站访问量增大之后,VPS也有捉襟见肘的时候,会明显感觉网站打开速度变慢,这时候先别忙着升级服务器,优化下LNMP试试,也许有奇效.当然,不缺银子的,直接升配置,效果更好.

磁盘优化

修改shell命令的history 记录个数

$ vim /etc/profile

HISTSIZE=100

优化写磁盘操作。禁止写入atime时间.优化IO性能,一般设置你的php代码区,如/data/httpd/为数据分区,

$ vim /etc/fstab

/dev/sda5 /data/httpd ext3 noatime,nodiratime 0 0

#磁盘和目录对应你自己的机器分区

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缓存的还不错.这里部落需要补充一下,如果不熟悉您的环境,就不要装了,像部落那一次的Lnmp军哥一健安装包内存加速类扩展不可乱安装,就是因为出过问题.

关于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下的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

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;

2、worker_rlimit_nofile参数默认是5xxxx.

worker_rlimit_nofile 65535;

  1. events
  2. {
  3. use epoll;
  4. worker_connections 32700;
  5. }

添加防压力测试

  1. if ($http_user_agent ~ ApacheBench|WebBench|Jmeter|must-revalidate|Havij) {retun 503;}
  2. 添加针对CVE-2013-4547链接空格的补丁
  3. if ($request_uri ~ ” “) {return 444;}

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

 

 

小结

lnmp建站环境,我们能做的优化,部落建议可以先自己进行手动优化,另外,像PHP版本之类的,也可以根据自己的情况,适当进行相应的升级等.

评论 1 条 评论内容很精采,有内幕,而且绝对有干货

  1. 薅羊毛 2016年09月02日 12:58  @回复  Δ-49楼 回复

    用LTMP的路过

给我留言