使用nginx配置多个php fastcgi负载均衡

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
传统型负载均衡 CLB,每月750个小时 15LCU
简介:

使用nginx配置多个php fastcgi负载均衡

服务器环境是一键安装包lnmp
nginx 配置文件
参考地址:http://blog.chinaunix.net/uid-26284395-id-3084491.html

nginx 配置文件
[root@cacti vhost]# cat /usr/local/nginx/conf/vhost/www.test.conf 
log_format apilog '$remote_addr $http_x_forwarded_for [$time_local] $http_host $ssl_protocol $request $request_body '
' $request_time $upstream_response_time $status $upstream_status $body_bytes_sent '
' "$http_referer" "$http_user_agent" $upstream_addr';
upstream fpm-pool {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
keepalive 4;
}

server
{
listen 80;
server_name www.test.com hadxpg.test.com;
index index.html index.htm index.php;
root /var/www/html/mtoyyweb;

#limit_conn crawler 20; 
#error_page 404

location ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass fpm-pool;
fastcgi_index index.php;
include fastcgi.conf;

}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*.(js|css)?$
{
expires 1h;
}

location /5998153NginxStatus
{
stub_status on;
access_log off;
}

access_log /data/wwwlogs/access_log;
error_log /data/wwwlogs/error.log;
}

[root@cacti vhost]# cat /usr/local/nginx/conf/vhost/fpmstatus.conf 
server {
listen 127.0.0.1:15001;
location ~^/fpmstatus$ {
#auth_basic "status page";
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
#include fastcgi_params;
include fastcgi.conf;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
}
location ~^/fpm2status$ {
#auth_basic "status page";
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
#include fastcgi_params;
include fastcgi.conf;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9001;
}
}

[root@cacti vhost]# cat /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /data/wwwlogs/fpm-err.log
log_level = notice
events.mechanism = epoll
;process.priority = -19

[www]
listen = 127.0.0.1:9000
listen.backlog = 65535
listen.allowed_clients = 127.0.0.1
listen.owner = apache
listen.group = apache
listen.mode = 0666
user = apache
group = apache
pm = dynamic
pm.status_path = /fpmstatus
pm.max_children = 1000
pm.start_servers = 48
pm.min_spare_servers = 24
pm.max_spare_servers = 96

access.format = "%R - %u %t %T \"%m %r%Q%q\" %s %f %d"
access.log = /data/wwwlogs/pool.access.log

request_terminate_timeout = 60
;request_slowlog_timeout = 2
;slowlog = /data/wwwlogs/fpm-slow.log

[root@cacti vhost]# cat /usr/local/php/etc/php-fpm2.conf 
[global]
pid = /usr/local/php/var/run/php-fpm2.pid
error_log = /data/wwwlogs/fpm2-err.log
log_level = notice
events.mechanism = epoll

[www]
listen = 127.0.0.1:9001
listen.backlog = 10000
listen.allowed_clients = 127.0.0.1
listen.owner = apache
listen.group = apache
listen.mode = 0666
user = apache
group = apache
pm = dynamic
pm.status_path = /fpm2status
pm.max_children = 1000
pm.start_servers = 48
pm.min_spare_servers = 24
pm.max_spare_servers = 96
request_terminate_timeout = 60
;request_slowlog_timeout = 2
;slowlog = /data/wwwlogs/fpm2-slow.log

测试php-fpm.conf 配置文件正确性:

[root@cacti vhost]# /usr/local/php/sbin/php-fpm -t -y /usr/local/php/etc/php-fpm2.conf 
[01-Jan-2018 19:15:14] NOTICE: configuration file /usr/local/php/etc/php-fpm2.conf test is successful

[root@cacti vhost]# /usr/local/php/sbin/php-fpm -t -y /usr/local/php/etc/php-fpm.conf 
[01-Jan-2018 19:15:18] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

[root@cacti vhost]# grep php-fpm2.conf /etc/init.d/php-fpm2 
php_fpm_CONF=${prefix}/etc/php-fpm2.conf
[root@cacti vhost]# grep php-fpm.conf /etc/init.d/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf

[root@cacti vhost]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

[root@cacti vhost]# /etc/init.d/php-fpm2 restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

开启错误日志查看到负载均衡日志:
[root@cacti vhost]# tail -4 /data/wwwlogs/mtoyy_error.log
2018/01/01 19:12:53 [error] 27486#0: 792819 FastCGI sent in stderr: "PHP message: PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/mtoyyweb/include/mysql.class.php on line 24" while reading response header from upstream, client: 61.135.194.48, server: www.uuopp.com, request: "GET /flow_bx.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.uuopp.com", referrer: "http://www.uuopp.com/index.php"
2018/01/01 19:19:02 [error] 27485#0: 
792821 FastCGI sent in stderr: "PHP message: PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/mtoyyweb/include/mysql.class.php on line 24" while reading response header from upstream, client: 61.135.194.48, server: www.uuopp.com, request: "GET /wapads.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "www.uuopp.com", referrer: "http://www.uuopp.com/flow_bx.php"
2018/01/01 19:19:03 [error] 27485#0: 792821 FastCGI sent in stderr: "PHP message: PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/mtoyyweb/include/mysql.class.php on line 24" while reading response header from upstream, client: 61.135.194.48, server: www.uuopp.com, request: "GET /introduce.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.uuopp.com", referrer: "http://www.uuopp.com/wapads.php"
2018/01/01 19:19:04 [error] 27485#0: 
792821 FastCGI sent in stderr: "PHP message: PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/mtoyyweb/include/mysql.class.php on line 24" while reading response header from upstream, client: 61.135.194.48, server: www.uuopp.com, request: "GET /flow_bx.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "www.uuopp.com", referrer: "http://www.uuopp.com/introduce.php"


 本文转自 wjw555 51CTO博客,原文链接:http://blog.51cto.com/wujianwei/2056430


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
21天前
|
负载均衡 网络协议 网络安全
SLB-Backend多实例部署配置健康检查
【10月更文挑战第22天】
48 3
|
2天前
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
14 3
|
16天前
|
弹性计算 负载均衡 算法
slb 配置不当
【11月更文挑战第2天】
32 10
|
13天前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
36 3
|
17天前
|
负载均衡 监控 应用服务中间件
slb配置同步问题
【11月更文挑战第1天】
27 3
|
25天前
|
弹性计算 负载均衡 算法
slb配置监听器
【10月更文挑战第18天】
39 3
|
1月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
42 3
|
1月前
|
负载均衡 Java 应用服务中间件
Nginx负载均衡配置
Nginx负载均衡配置
|
1月前
|
负载均衡 算法 Java
java中nginx负载均衡配置
java中nginx负载均衡配置
42 0
|
1月前
|
负载均衡 算法 应用服务中间件
【nginx】配置Nginx实现负载均衡
【nginx】配置Nginx实现负载均衡
下一篇
无影云桌面