小VPS优化nginx php-fpm的方法详解

小VPS受系统资源的限制,访问量过大,超过系统所能承受的极限时,有一部分请求就会502了。在系统资源够用的情况,优化nginx,php-fpm,以及系统本身,达到2个目的:

1,合理配置系统资源,将有限的资源,最大化利用。好钢用在刀刃上。
2,尽量减少磁盘的I/O
一,系统主要资源

[root@xxxxxx nginx]# free -m 
              total       used       free     shared    buffers     cached 
Mem:           994        815        179          0         43        118 
-/+ buffers/cache:        453        540 
Swap:            0          0          0 
 
[root@xxxxxx nginx]# cat /proc/cpuinfo 
processor       : 0 
vendor_id       : GenuineIntel 
cpu family      : 6 
model           : 62 
model name      : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz 
stepping        : 4 
cpu MHz         : 2594.024 
cache size      : 20480 KB 
physical id     : 0 
siblings        : 1 
core id         : 0 
cpu cores       : 1 
apicid          : 0 
initial apicid  : 0 
fpu             : yes 
fpu_exception   : yes 
cpuid level     : 13 
wp              : yes 
flags           : fpu vme de pse tsc msr pae mce cx8 apic 。。。。省略。。。。 
bogomips        : 5188.04 
clflush size    : 64 
cache_alignment : 64 
address sizes   : 46 bits physical, 48 bits virtual 
power management: 

二,php-fpm优化

pm = dynamic                      //进程数,动态分配 
pm.max_children = 24              //最大进程数 
pm.start_servers = 8              //刚启动时的进程数 
pm.min_spare_servers = 8          //服务器空闲时的最小进程数 
pm.max_spare_servers = 24         //服务器空闲时的最大进程数 
 
php_flag[display_errors] = off    //运行一段时间后,将错误提示信息关闭掉 
php-fpm一个进程占了20M-30M之间,top看一下php-fpm占的内存百分比,估算一下就知道了。max_children,max_spare_servers不是越大越好。

三,nginx优化

1,安装稳定最新版

# vim /etc/yum.repos.d/nginx.repo   //加上以下内容 
 
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 
 
# yum install nginx     //更新nginx 

2,优化配置nginx

worker_processes auto;      //设置auto,nginx进程动态分配 
 
# access_log    //注释掉,减少I/O 
# log_format    //注释掉,减少I/O 
 
gzip on;          //开启gzip 
gzip_min_length  1k; 
gzip_buffers     4 16k; 
gzip_http_version 1.1; 
gzip_comp_level 5;       //1-9,越大压缩越好,消耗资源越大 
gzip_types       text/plain application/x-javascript text/css application/xml; 
gzip_vary on; 
worker_processes对于小VPS的话,设成1,2也是可以的。够用了。
对于小vps的话,上面nginx,php-fpm的优化配置都是有益的。

四,linux启动进程优化

# chkconfig --list |grep on 
查看开机启动的进程,把不必要启动进程关掉。如果遇到不知道的,最好先查一下在决定要不要关闭

时间: 2024-09-24 10:15:01

小VPS优化nginx php-fpm的方法详解的相关文章

Nginx用户认证配置方法详解(域名/目录)_nginx

Nginx可以为某一个域名单独加用户认证,具体做法如下: 1. 生成用户认证的用户名和密码: 复制代码 代码如下: #wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh 根据提示输入: 用户名:密码:文件名: 脚本会自动生成认证文件,auth.conf内容如下: 复制代码 代码如下: /usr/local/nginx/conf/auth.conf 2. 为Nginx添加auth认证配置 下面以某域名下面的auth目录为例,在域

Nginx访问限速配置方法详解

刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,配置Nginx成功达到限速目的,在此分享出来. 配置简单,只需3行,打开"nginx根目录/conf/nginx.conf"配置文件修改如下: 查看源代码打印帮助  代码如下 复制代码  http{         --         limit_zone one $binary_remote_addr 10m;         --         server {             location /

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)_php实例

一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel #安装php.MySQL.Nngix所依赖的包 3.下载以下包 #我把所有源文件都下载在root目录,读者可自行修改源文件存放目录 3.1 libmcrypt-2.5.8

批量杀死MySQL连接的几种方法详解

批量杀死MySQL连接的几种方法详解 官网:https://dev.mysql.com/doc/refman/5.6/en/kill.html 13.7.6.4 KILL Syntax Press CTRL+C to copy KILL [CONNECTION | QUERY] processlist_id Each connection to mysqld runs in a separate thread. You can kill a thread with the KILL proces

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)

一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel #安装php.MySQL.Nngix所依赖的包 3.下载以下包 #我把所有源文件都下载在root目录,读者可自行修改源文件存放目录 3.1 libmcrypt-2.5.8

整形医院类网站两个重点的网络营销方法详解

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 目前整形行业还处于刚刚起步的阶段,随着爱美之心的泛滥,整形类的网站一定会获得极大的发展,正是因为发展前景相当不错,互联网上的整形医院类的网站如雨后春笋般的建设了起来,这极大的增加了整形医院类网站的竞争激烈程度,所以要想从这个行业里面成功突围,只有利用两大营销方法,一个是SEO优化的搜索引擎营销,另一个就是其他形式的网络营销两种!下面就来进行简

如何远程调用Access数据库方法详解

  如何远程调用Access数据库方法详解: 使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0.).分服务器和客户端两部分,服务器可以多用户同时连接.远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器). 远程连接access数据库的几个方法: 1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器

win10系统怎么卸载 win10卸载方法详解

  win10系统怎么卸载?微软发布win10系统升级后,相信很多人都已经下载使用了吧!如果不想使用了怎么办?下面,绿茶小乐哥分享win10卸载方法详解,想了解的一起来看看吧! 微软希望我们每一个人都升级到windows10系统,并且保持使用,但是回滚选项是必须有的.在windows硬件工程产业创新峰会(WinHEC)上,微软展示了一种超级简单的卸载win10和回滚系统的方式. 在被演示的文稿中,围绕着windows10升级的细节展开,在"更新与恢复"里,出现回滚到之前windows版

JavaScript原生对象之Date对象的属性和方法详解

 这篇文章主要介绍了JavaScript原生对象之Date对象的属性和方法详解,需要的朋友可以参考下     创建 Date 对象的语法: 代码如下: //Date 对象会自动把当前日期和时间保存为其初始值. new Date();   //value-毫秒:代表自世界协调时1970年1月1日00:00:00开始的数值. new Date(value); //dateString-日期字符串:表示日期的字符串值.此字符串应该是在parse方法中识别的格式. new Date(dateString