Linux系统配置多实例php-fpm服务的例子

LNMP或者LNAMP环境的配置这里不做介绍,只讲在LNMP环境的基础上配置多实例的过程。因为我在使用的是LNAMP环境,所以额外编译一份php到/usr/local/php-fpm/,配置文件在/etc/php-fpm/,并在此基础上做的笔记。

先修改三个值:
1,以static方式,也就是固定进程数量运行php-fpm。
2,每个实例建立100个worker进程。(不宜太多,避免不稳定)
3,每个进程执行完200次请求即退出。(避免PHP的内存泄露问题,也就是内存越用越多)

sed -i 's#pm = dynamic#pm = static#' /etc/php-fpm/php-fpm.conf
sed -i 's#pm.max_children = 5#pm.max_children = 100#' /etc/php-fpm/php-fpm.conf
sed -i 's#;pm.max_requests = 500#pm.max_requests = 200#' /etc/php-fpm/php-fpm.conf
以下为复制php-fpm.conf和php-fpm服务管理脚本的命令

cd /etc/php-fpm/
cp php-fpm.conf  php-fpm-1.conf
sed -i 's#listen = 127.0.0.1:9000#listen = 127.0.0.1:9001#' php-fpm-1.conf
sed -i 's#\[www\]#\[php-fpm-pool-1\]#' php-fpm-1.conf
sed -i 's#pid = run/php-fpm.pid#pid = run/php-fpm-1.pid#' php-fpm-1.conf

cd /etc/init.d/
cp php-fpm  php-fpm-1
sed -i 's#/etc/php-fpm/php-fpm.conf#/etc/php-fpm/php-fpm-1.conf#' php-fpm-1
sed -i 's#/var/run/php-fpm.pid#/var/run/php-fpm-1.pid#' php-fpm-1

service php-fpm-1 restart
执行完上面的命令即复制了一份php-fpm,服务名和配置文件名均为php-fpm-1。
再复制更多份,把上面的命令上的-1替换为-2,listen监听端口往上修改,然后再执行一遍就OK。

然后写一个restart_php_fpm.sh的文件,内容为

service php-fpm-1 restart
service php-fpm-2 restart
service php-fpm-3 restart
... ...
可以用来启动和重启所有的php-fpm实例。关闭用命令killall php-fpm即可。

然后是Nginx配置。
在http段加入:

upstream php-fpm-pool { 
    server 127.0.0.1:9001;
    server 127.0.0.1:9002;
    server 127.0.0.1:9003;
    server 127.0.0.1:9004;
    server 127.0.0.1:9005;
}
修改server段:

location ~ .*\.(php|php5)?$ {
    fastcgi_pass php-fpm-pool;
    fastcgi_index index.php;
    include fastcgi.conf;
}
配置结束。

多实例在效果上基本等于多台机器的负载均衡,但是我个人还是比较倾向于在单台上配置多实例(累加资源相等的情况下),在一台机器上配置、维护、使用都要方便的多。

时间: 2024-09-21 20:06:44

Linux系统配置多实例php-fpm服务的例子的相关文章

Linux平台PHP5.4设置FPM线程数量的方法_php技巧

本文实例讲述了Linux平台PHP5.4设置FPM线程数量的方法.分享给大家供大家参考,具体如下: PHP5.4安装完毕后,FPM的默认配置文件位于/usr/local/php/etc/php-fpm.conf.default >cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf >vim /usr/local/php/etc/php-fpm.conf 输入"/www",搜索w

如何为Linux系统配置多语言环境?

这篇文章主要讲述了如何为Linux系统配置多语言环境的基本方法,其中还包括编码的修改方法,我们就拿用户使用最多的Ubuntu和CentOS这两个为例子吧.需要的朋友可以参考下. 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US.UTF-8",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面. 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n修改 $H

Linux Deepin 新增英国肯特大学镜像服务

Linux Deepin国际化进程不断推进,成果凸显,今日Linux Deepin新增英国肯特大学镜像服务,这是Linux Deepin在欧洲地区的第一个镜像源! Linux Deepin立志做世界上最好的Linux操作系统!因此Linux Deepin在做好系统的同时,也将重点解决全球用户系统更新缓慢的问题,今后Linux Deepin将不断在海外增加镜像服务,让全球用户能够享受到Linux Deepin带来的极致Linux体验! Linux Deepin用户可以在深度软件中心的『设置-软件源

Linux中如何配置让哪些服务启动?

Linux中如何配置让哪些服务启动? 1 运行ntsysv或者setup命令,进入菜单进行配置: [root@localhost software]# ntsysv [root@localhost software]# setup

微软准备在Linux上推出Service Fabric微服务平台预览版

微软将在9月26日--也就是在亚特兰大举行的Ignite大会的开幕日--公开预览面向Linux用户的Service Fabric微服务. 云应用利用Service Fabric可以分解成更小的组件,也就是所谓的微服务,可以对底层基础设施进行独立的升级和维护.Service Fabric可以让各种微服务通过编程接口相互之间进行通信. 微软在3月举行的Build大会上有限预览了Service Fabric for Linux,该版本运行托管在微软Azure云上的Linux.即将公开预览的Servic

在Windows平台下修改Oracle实例不随服务启动

一.在Windows平台下修改Oracle实例不随服务启动: 1.修改注册表如下键值实现: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb10g_home1 2.在右边找到找到 ORA_WWL_AUTOSTART项,默认这个值为TRUE,随服务启动而启动,我们将其改为FALSE,再起服务的时候将不再会启动数据库 测试: 启动Oracle服务 C:\>net start OracleServiceWWL OracleServiceWWL 服务正在启动 .

在PHP中运行Linux命令并启动SSH服务的例子_php实例

升级 VPS 后,由于 Ubuntu 的 upstart 与 OpenVZ 的兼容问题,导致 sshd 服务不自动启动了,在尝试了 vePortal 的 console 与 file manager 及提交技术支持后都不能解决问题之后. 只能靠自己了,大概的思路是在 PHP 中进行 su 命令以执行 sshd 服务,因为 WordPress 还活着,并且可以在后台直接编辑主题相关的 PHP 脚本.只要把准备好的代码片断插入到 header.php 中,并在浏览器中访问一下主页即可. 相关的代码逻

阿里云如何部署Linux云服务器实例环境

示例:部署环境 您可以根据业务需要,选择下列任意一种方式部署云服务器 ECS 实例的使用环境: 镜像部署 手动部署 下表列出了两种部署方式的特点.一般推荐镜像部署.如果您需要个性化定制部署,建议使用手动部署. 对比项 镜像部署 手动部署 部署所需时间 3-5分钟,快速部署上云 1-2天.选择适合的操作系统.中间件.数据库.各类软件.插件.脚本,再进行安装和配置 专业性 IOPS 由运维过万级用户的优质服务商提供 依赖开发人员的开发水平 个性化 支持主流应用场景 可满足个性化的部署要求 安全性 经

Linux无盘工作站架设实例_unix linux

摘要 架设Linux无盘工作站实例,服务器和客户端都使用Linux.主要涉及:DHCP TFTP SYSLINUX NFS(2003-03-12 08:52:24)  --------------------------------------------------------------------------------------  客户端是支持PXE方式启动的刀片,用Linux作为服务器,服务器配置如下:  1) 安装DHCP服务器dhcpd  2) 配置/etc/dhcpd.conf