使用nginx配置多个php fastcgi负载均衡
服务器环境是一键安装包lnmp
nginx 配置文件
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"