`

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

 
阅读更多

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优化参数详解

添加防压力测试 把下面代码写在none.conf 中,然后每个网站的conf中 include none.conf
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 
这两行前面加#注释掉即可。

[mysqld]
增加一行:
max_connections = 2000   
在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

分享到:
评论

相关推荐

    php7+nginx1.11+mysql5.6+yaf+redis

    Nginx支持负载均衡、URL重写、缓存管理和SSL加密等高级功能,常用于配合PHP和MySQL构建LNMP(Linux + Nginx + MySQL + PHP)环境,提供高效稳定的Web服务。 【MySQL5.6】 MySQL5.6是MySQL数据库管理系统的一个重要...

    lnmp环境软件包

    LNMP(Linux + Nginx + MySQL + PHP)是一个常见的Web服务器环境组合,广泛用于搭建高性能的动态网站和应用服务。这个"lnmp环境软件包"可能是为了方便用户快速安装和配置这一整套环境而打包的集合。Zabbix是一款开源...

    lnmp1.6安装包

    LNMP(Linux + Nginx + MySQL + PHP)是一套常用的Web服务器组合,尤其适合于PHP应用程序的开发和部署。这个"lnmp1.6安装包"提供了方便的一键安装方式,帮助用户快速搭建包含MySQL数据库、Redis缓存服务以及PHP运行...

    一键安装lnmp1.8-full.tar.gz

    LNMP(Linux + Nginx + MySQL + PHP)是一套常用的Web服务器组合,尤其适合于高性能、高并发的网站运行环境。"一键安装lnmp1.8-full.tar.gz"是针对这个组合的一个打包脚本或者预配置的软件集合,旨在简化在Linux系统...

    PHP安装包PHP安装包

    这样的组合常被称为LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx + MySQL + PHP)架构,广泛应用于网站开发和部署。 在标签“php安装包”中,我们可以理解这个压缩包的主要目的是为了帮助用户便捷地...

    一键安装lnmp环境

    它集合了开源操作系统Linux,高性能的Web服务器Nginx,关系型数据库管理系统MySQL,以及动态网页编程语言PHP,为开发者提供了一个高效且稳定的运行平台。本篇将详细介绍如何通过一键安装脚本实现快速配置LNMP环境。 ...

    go2000_PHP网址导航

    - **服务器环境配置**:运行PHP项目需要合适的服务器环境,比如LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx + MySQL + PHP)等。 - **安全考虑**:作为公众可访问的系统,必须考虑安全问题,例如SQL...

    生产环境日常shell工作运维脚本工作直接复制不用修改直接运行

    5. **一键部署LNMP网站平台脚本.sh**:LNMP(Linux + Nginx + MySQL + PHP)是常见的Web服务环境。此脚本简化了安装和配置过程,使得在新服务器上快速搭建网站变得简单。 6. **一键查看服务器资源利用率.sh**:这个...

    ZABBIX监控安装.docx

    Zabbix依赖于两种常见的服务器架构:LNMP(Linux + Nginx + MySQL/MariaDB + PHP)和LAMP(Linux + Apache + MySQL/MariaDB + PHP)。这个系统由多个组件构成,包括: 1. Zabbix-WEB:这部分主要负责数据的展示,...

    西农Linux实习报告

    5. **服务器搭建**:实践LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx + MySQL + PHP)服务器环境的搭建。 6. **安全与防火墙**:设置SSH安全,理解iptables防火墙规则,学习基本的安全防护措施。 7....

    Centos LNMP安装.pdf

    在本文中,我们将详细介绍如何在 CentOS 6.4 系统上进行LNMP(Linux、Nginx、MySQL、PHP)的源码编译安装。首先,确认系统环境,这里是基于内核2.6.32,CentOS 6.4的64位系统,IP地址为192.168.2.103。 为了顺利...

    10NoSQL非关系型数据库.zip

    - LNMP(Linux + Nginx + MySQL + PHP)是常见的Web服务器架构,将Redis集成进这个环境可以提供缓存服务,提升网站性能。 以上内容涵盖了NoSQL数据库中Redis和MongoDB的基础知识,包括数据存储、高可用性和管理...

    tuxans-old:tuxans 是著名的 TuxLite shell 脚本的 Ansible 端口。 它主要是免费的 shell 脚本集合,用于为 Debian 和 Ubuntu 快速部署 LAMP 和 LNMP 堆栈(Linux、ApacheNginx、MySQL 和 PHP)

    它主要是免费的 shell 脚本集合,用于为 Debian 和 Ubuntu 快速部署 LAMP 和 LNMP 堆栈(Linux、Apache/Nginx、MySQL 和 PHP)。 谁制作了原始的TuxLite ? 马特做到了! 要联系他,请发送电子邮件至: “s” at ...

    (精品word)linux之我的互联网面试经验.doc

    学习过程中,不应忽视任何细节,即使是看似简单的内容,比如如何创建软链接和硬链接(`ln`命令),或者是如何配置LNMP(Linux + Nginx + MySQL + PHP)环境。实践操作是巩固知识的最佳方式,通过实际操作来理解和...

    PHP的Laravel框架结合MySQL与Redis数据库的使用部署

    在安装Laravel之前,需要搭建好LNMP(Linux+Nginx+MySQL+PHP)环境,具体步骤因篇幅限制不再详述。可以通过Linux阿里云自带的环境,也可以手动安装。Nginx作为Web服务器软件,如果选择不使用,则需要安装MySQL、PHP...

    16音乐网站PHP源码

    在部署和运行这个16音乐网站PHP源码时,需要一个支持PHP和MySQL的服务器环境,比如LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP)。安装配置好这些环境后,将源码上传至服务器,配置好数据库...

    基于PHP的DSMmall多商户开源商城php版源码.zip

    为了部署和运行这个商城系统,开发者需要准备一个支持PHP的服务器环境,比如LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP)堆栈,并且可能需要配置相应的服务器环境和数据库设置。...

    软件测试相搭配的所有工具安装包.zip

    本压缩包"软件测试相搭配的所有工具安装包.zip"提供了全面的工具集合,涵盖了LNMP环境搭建以及MySQL数据库相关的工具。以下是这些工具的具体介绍: 1. LNMP工具: LNMP是Linux、Nginx、MySQL、PHP的缩写,是一种...

    基于PHP的亚雷进销存管理系统源码.zip

    同时,还需要配置合适的服务器环境,如LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP),以运行和维护系统。对于想要深入了解PHP进销存管理系统的开发者而言,这个源码包将提供宝贵的学习和...

    TuxLite, Debian或者Ubuntu的完整 LAMP 和LNMP设置脚本.zip

    TuxLite, Debian或者Ubuntu的完整 LAMP 和LNMP设置脚本 TuxLite自述文件TuxLite是一个免费的shell 脚本集合,用于快速部署用于Debian和Ubuntu的LAMP 和LNMP栈( Linux,apache/Nginx,MySQL和 PHP ) 。你认为从共享...

Global site tag (gtag.js) - Google Analytics