转自 http://www.cnblogs.com/sunbeidan/p/5016635.html
一:lnmp的nginx优化
主要是修改 /usr/local/nginx/conf/nginx.conf
1.军哥的lnmp安装包中nginx的worker_processes默认设置是1,这里我们要根据服务器cpu具体的核心数来优化。通常4核的CPU我会把值设为3。
1
2
3
4
5
6
7
8
9
10
11
|
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.
1
2
3
4
5
6
7
|
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以上使用
1
2
3
4
5
6
7
|
禁用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左右。
1
2
3
4
|
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 程序出现漏洞时,损失是非常严重的
1
2
3
4
5
6
7
|
fsockopen这个参数用的比较多,可以删除。 另外从安全方面考虑可隐藏PHP版本号 将文件里面的 expose_php = On 修改为 expose_php = Off 即可 将display_errors =On改为Off |
最后修改最大连接数使重启后也可生效,在/etc/profile 最后增加一行 ulimit -SHn 65535
另外军哥的LNMP安装包里有一个eAccelerator的安装文件。最好装一下。这个是加速PHP缓存的还不错。
关于eAccelerator的设置我就给出两个修改的地方吧:
1
|
eaccelerator.shm_size= "16"
|
#默认是占用16M共享内存,军哥好像是1,你就改成16吧。大小也可根据你的内存情况设置。
另外军哥默认是eaccelerator缓存目录是/usr/local/eaccelerator_cache,这样用硬盘缓存的话,某些情况会影响php的响应时间。我们可以直接放到共享内存里面老。
运行命令:mkdir -p /dev/shm/eaccelerator_cache
修改目录为以下就OK了。
1
|
eaccelerator.cache_dir= "/dev/shm/eaccelerator_cache"
|
最后全部修改完记得重启生效:lnmp restart
相关推荐
LNMP(linux+nginx+mysql+php)服务器环境搭配
lnmp环境搭建(nginx+mysql)
alpine创建lnmp环境alpine安装nginx+php5.6+mysql
LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。
lnmp(centos6.2+nginx+mysql+php)环境搭建系统教程 centos6.2 nginx-1.2.0 mysql-5.5.3 php-5.4.3 宋正河作品
服务器CentOS 6.2 yum安装配置lnmp(Nginx+PHP+MySQL)
CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)
CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL) 收藏版本
CentOS_6.2_yum安装配置lnmp服务器(Nginx+PHP+MySQL).doc
nginx+mysql+php所需要所有的开源依赖包.zip
一键搭建lnmp(nginx+mysql)
LNMP源码安装详细笔记(Linux+Nginx+Mysql+php).rar
搭建教程 请参考 http://blog.csdn.net/u010145312/article/details/72953724
Lnmp项目搭建(nginx1.6.2+mysql5.1)
LNMP源码安装详细笔记(Linux+Nginx+Mysql+php).pdf
lnmp环境带wiki产品(nginx+mysql)
lnmp(nginx 1.20.1+mysql5.7+php5.6)环境搭建
一键lnmp(nginx 1.13+mysql5.5+php5.3)-详细笔记文档总结
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian VPS(VDS)或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的...
lnmp环境(mysql分离)(nginx+mysql)