<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; Linux系统配置多实例php-fpm服务</title>
	<atom:link href="https://www.fuwuqiok.com/tag/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>Linux系统配置多实例php-fpm服务</title>
		<link>https://www.fuwuqiok.com/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/</link>
		<comments>https://www.fuwuqiok.com/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/#comments</comments>
		<pubDate>Tue, 15 Mar 2016 14:16:01 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[linux代维]]></category>
		<category><![CDATA[代维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[Linux系统配置多实例php-fpm服务]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3104</guid>
		<description><![CDATA[<p>Linux系统上目前主要使用Apache和php-fpm来解析运行PHP Web程序。php-fpm仅支持多进 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/">Linux系统配置多实例php-fpm服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<div class="entry-content">
<p>Linux系统上目前主要使用Apache和php-fpm来解析运行PHP Web程序。php-fpm仅支持多进程，Apache支持多进程和多线程，但绝大多数环境中均为多进程方式，这里也只讨论多进程。</p>
<p>从实践来看，单实例最多可以开到200-300左右的进程，开到500以上就容易出错了。<br />
每个进程占用的内存在5M-15M左右，按平均10M计算，500个进程也只有5G，而现在很多高性能机都是64G甚至128G的内存，这样单实例是无法全面使用上内存资源的。<br />
<span id="more-571"></span><br />
这几年部署过的多实例环境并不多，因为访问量不是十分高的话，是用不上的。<br />
上次配置多实例是一个100万左右PV的Discuz论坛，配置之后是很有效的。现在做的这个是千万PV的静态站，请求主要在点击计数上，在300和500之间调整进程数还是会偶尔的挂掉，机器配置是足够用的，是稳定性的问题。</p>
<p>LNMP或者LNAMP环境的配置这里不做介绍，只讲在LNMP环境的基础上配置多实例的过程。因为我在使用的是LNAMP环境，所以额外编译一份php到/usr/local/php-fpm/，配置文件在/etc/php-fpm/，并在此基础上做的笔记。</p>
<p>先修改三个值：<br />
1，以static方式，也就是固定进程数量运行php-fpm。<br />
2，每个实例建立100个worker进程。（不宜太多，避免不稳定）<br />
3，每个进程执行完200次请求即退出。（避免PHP的内存泄露问题，也就是内存越用越多）</p>
<div class="codecolorer-container text geshi">
<div class="text codecolorer">sed -i &#8216;s#pm = dynamic#pm = static#&#8217; /etc/php-fpm/php-fpm.conf<br />
sed -i &#8216;s#pm.max_children = 5#pm.max_children = 100#&#8217; /etc/php-fpm/php-fpm.conf<br />
sed -i &#8216;s#;pm.max_requests = 500#pm.max_requests = 200#&#8217; /etc/php-fpm/php-fpm.conf</div>
</div>
<p>以下为复制php-fpm.conf和php-fpm服务管理脚本的命令</p>
<div class="codecolorer-container text geshi">
<div class="text codecolorer">cd /etc/php-fpm/<br />
cp php-fpm.conf  php-fpm-1.conf<br />
sed -i &#8216;s#listen = 127.0.0.1:9000#listen = 127.0.0.1:9001#&#8217; php-fpm-1.conf<br />
sed -i &#8216;s#\[www\]#\[php-fpm-pool-1\]#&#8217; php-fpm-1.conf<br />
sed -i &#8216;s#pid = run/php-fpm.pid#pid = run/php-fpm-1.pid#&#8217; php-fpm-1.conf</p>
<p>cd /etc/init.d/<br />
cp php-fpm  php-fpm-1<br />
sed -i &#8216;s#/etc/php-fpm/php-fpm.conf#/etc/php-fpm/php-fpm-1.conf#&#8217; php-fpm-1<br />
sed -i &#8216;s#/var/run/php-fpm.pid#/var/run/php-fpm-1.pid#&#8217; php-fpm-1</p>
<p>service php-fpm-1 restart</p></div>
</div>
<p>执行完上面的命令即复制了一份php-fpm，服务名和配置文件名均为php-fpm-1。<br />
再复制更多份，把上面的命令上的-1替换为-2，listen监听端口往上修改，然后再执行一遍就OK。</p>
<p>然后写一个restart_php_fpm.sh的文件，内容为</p>
<div class="codecolorer-container text geshi">
<div class="text codecolorer">service php-fpm-1 restart<br />
service php-fpm-2 restart<br />
service php-fpm-3 restart<br />
&#8230; &#8230;</div>
</div>
<p>可以用来启动和重启所有的php-fpm实例。关闭用命令killall php-fpm即可。</p>
<p>然后是Nginx配置。<br />
在http段加入：</p>
<div class="codecolorer-container text geshi">
<div class="text codecolorer">upstream php-fpm-pool {<br />
server 127.0.0.1:9001;<br />
server 127.0.0.1:9002;<br />
server 127.0.0.1:9003;<br />
server 127.0.0.1:9004;<br />
server 127.0.0.1:9005;<br />
}</div>
</div>
<p>修改server段：</p>
<div class="codecolorer-container text geshi">
<div class="text codecolorer">location ~ .*\.(php|php5)?$ {<br />
fastcgi_pass php-fpm-pool;<br />
fastcgi_index index.php;<br />
include fastcgi.conf;<br />
}</div>
</div>
<p>配置结束。</p>
<p>多实例在效果上基本等于多台机器的负载均衡，但是我个人还是比较倾向于在单台上配置多实例（累加资源相等的情况下），在一台机器上配置、维护、使用都要方便的多。</p>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/">Linux系统配置多实例php-fpm服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/linux%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e5%a4%9a%e5%ae%9e%e4%be%8bphp-fpm%e6%9c%8d%e5%8a%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
