Centos服务器上搭建nginx负载均衡的过程及php使用sys_getloadavg获取服务器负载、检查客户端连接状态函数connection_status的应用

服务器 0

一、Centos服务器上搭建nginx负载均衡的过程

    本文的前提是你的服务器上已经装好了nginx服务且已正常启动。我这边是在虚拟机上配置的,所以在本机上先host指定了一个到虚拟机的域名,比如:

192.168.47.128 kermit.com

    在虚拟机为server:kermit.com 添加上配置,实现本机里可以通过kermit.com访问虚拟机的80端口。然后就开始操作负载均衡了。建议两个server配置文件,都存放在nginx配置目录下,如conf/vhost/p98.conf和conf/vhost/p99.conf.配置内容如下:p98.conf

单台centos服务器上搭建nginx负载均衡的过程

p99.conf和p98的内容基本一样,就是修改一下监听端口和server_name(这个不弄也行),然后就是修改root目录。因为我们需要区分是访问的不同的地址来确定实现了负载均衡。

单台centos服务器上搭建nginx负载均衡的过程

这两个配置文件编辑好了之后,就创建好各自的root目录及index文件,我这里的文件和内容截图如下:

单台centos服务器上搭建nginx负载均衡的过程

配置好这些之后再配置负载均衡,写在nginx.conf里的http模块中:

upstream testup{ 
      server  127.0.0.1:98; 
      server  127.0.0.1:99;
   }    

    #上面就是负载均衡模块:upstream,可以写在include前也可以写在include 下面这句后。注意upstream testup这句,testup就相当于这个负载均衡的ID。include vhost/*.conf;

    再进入到最开始你能正常访问的kermit.com主机的server配置,在它的location中写上: proxy_pass http://testup; 如下:

location / {
            proxy_pass http://testup;  
            #后面的都可以不要
        }

    重启nginx.后访问kermit.com前台就会切换显示home/www/下p98和p99目录里的index.html里的内容。

this is /home/www/p99

this is /home/www/p98 ------98

二、php使用sys_getloadavg获取服务器系统负载以及检查当前客户端的连接状态函数connection_status

    php里如果要获取服务器的一些信息,可以使用exec执行一些系统命令,从而得到服务器的信息。今天看到一个PHP自身提供了一个直接获取系统负载的函数:

    sys_getloadavg — 获取系统的负载(load average),此函数会返回三个系统负载(系统运行队列中的进程数)的样本数据,分别是1分钟、5分钟和15分钟之前。使用方法: 

array sys_getloadavg ( void )

     返回示例:

Array ( [0] => 0.06 [1] => 0.04 [2] => 0 ) 

另外,PHP还提供两个函数检查当前客户端的连接状态:

connection_aborted — 检查客户端是否已经断开
如果客户端已经断开则返回1,否则返回0。 
connection_status — 返回连接的状态位
获得当前连接的状态位, 可以用于与 CONNECTION_XXX 定义的常量来确定连接状态。

也许您对下面的内容还感兴趣: