实验环境如下:
公司主营业务:做网站、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出佳木斯免费做网站回馈大家。
node1 | Apache server | 10.1.12.12 |
node2 | php-fpm | 10.1.12.13 |
系统环境:centos 7
node1
Apache server确认有下面的模块
~]# httpd -M |grep fcgi proxy_fcgi_module (shared)
定义一个虚拟主机
~]# vi /etc/httpd/conf.d/vhost.conf
ServerName www.blackCao.com DocumentRoot "/web/www" CustomLog logs/black_access.log conbaind ErrorLog logs/black_error.log Options none AllowOverride none Require all granted ProxyRequests off ProxypassMatch ^/(ping|status|.*\.php)$ fcgi://10.1.12.13:9000/data/application/$1 DirectoryIndex index.php
ProxyPassMatch 将前端ping|status|PHP结尾的请求都转发至后端的PHP服务器后端网页存放位置自定义;
建立PHP状态页的配置文件
]# vi /etc/httpd/conf.d/status.confSetHandler Status-server Require all granted
建立虚拟主机主页目录
]# mkdir -pv /web/www
[root@s1 ~]# httpd -t [root@s1 ~]# systemctl start httpd.service [root@s1 ~]# ss -tnl
检查语法,启动服务,查看端口是否监听正常,
node2
~]# vi /etc/php-fpm.d/ listen = 10.1.12.13:9000 必须监听在一个能与外网通信的外部地址的端口 listen.allowed_clients = 10.1.12.12 IP为http server主机的 pm.status_path = /status PHP的状态页 ping.path = /ping 可检查PHP服务是否正常 ping.response = pong 上面ping的回应,pong说明正常,不响应说明有问题
建立web文件存放目录(对应上面虚拟机里定义的路径)
~]# mkdir -p /data/application ~]# vi /data/application/index.php
配置完成,启动服务查看9000端口是否在监听状态
php-fpm的配置选项
listen.backlog = -1
假如连接池定义最多能有50个连接,当来了55个的时候。这个选项定义这个后援队列的长度,-1表示不限制,如果内存不够用的时候可能会做修改
pm = dynamic
定义processor管理机制:static(使用一个固定的子进程数量)
dynamic(使用可变的子进程数量)
pm.max_children:最大子进程数量;连接池的最大容量;
pm.start_servers:服务启动时所启动的子进程数量;
pm.min_spare_servers最少空闲子进程数
pm.max_spare_servers最大空闲子进程数
rlimit_files = 1024所能打开的文件的数量,每个连接需要一个套接字文件,最多只有50个
rlimit_core = 0核心所能使用的内存空间大小,0表示不作限制
pm.status_path = /status
ping.path = /ping监控fpm的工作是否正常
ping.response = pong
php_value[session.save_path] = /var/lib/php/session session的存储位置
status输出信息
pool:www #连接池名称
process manager: dynamic #进程管理器类型
start time: 11/Oct/2016:11:22:04 +0800 #启动日期时间
start since:917 # 运行时长
accepted conn: 9 # 连接池已经处理过的请求数
listen queue: 0 # 请求队列长度
max listen queue: 0 # 请求队列的最大长度
listen queue len: 128 # socket等待队列的长度
idle processes: 4 # 空闲进程数量
active processes: 1 # 活跃的进程数量
total processes: 5 # 连接池中的总进程数量
max active processes: 2 # 连接池中最大的活跃进程数量
max children reached: 0 # 达到连接池中最大进程数量限制的上限的次数
slow requests: 0 : 启用了slow-log时,记录慢请求的数量