3、环境测试
3.1 Apache与PHP-FPM创建phpinfo页面,查看详细配置信息。
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器中访问,显示页面如下。
Server API显示为通过FPM提供服务,使用FastCGI协议传递请求,配置成功。
输入varnishstat指令查看varnish运行情况,最重要的是 cache_hit 和 cache_miss 这两行。如果没有任何命中,cache_hits 不会显示。当越来越多的请求进来,计数器会不断更新以反应新的命中数和未命中数。
另外,常用的还有varnishlog指令,当中有很多的选项可以在查询时使用。因此,强烈推荐在排错或测试时使用varnishlog。可以阅读varnish的man page来查看这个命令的详细使用情况。下面是一些使用的例子。 显示varnish和客户端之间的通信(忽略后端web服务器):
# varnishlog -b
显示varnish接收到的HTTP头信息(既有客户端请求的,也有web服务器响应的):
# varnishlog -c -i RxHeader
只显示web服务器响应的头信息:
# varnishlog -Dw /var/log/varnish.log
从/var/log/varnish.log中读取所有日志信息
# kill `cat /var/run/varnish.pid`
这个命令会从/var/run/varnish.pid中读取varnish的主进程的PID,并给这个进程发送TERM信号,从而关闭varnish。
通过分别访问静态页面(.html)和动态页面(.php),测试动静分离是否生效,以zone A为例:
访问静态页面:
# curl –I
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Tue, 30 Jul 2013 05:58:21 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Last-Modified: Sun, 28 Jul 2013 19:30:16 GMT
ETag: "bff82-16-4e29767d7c8be"
Content-Length: 22
Accept-Ranges: bytes
X-Varnish: 810334599
Age: 0
Via: 1.1 varnish
访问动态页面:
# curl –I
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Tue, 30 Jul 2013 06:00:23 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.3.3
3.4 LVS负载均衡
Zone A:192.168.85.91
# echo " This is zone A! " > /var/www/html/index.html
Zone B:192.168.85.96
# echo " This is zone B! " > /var/www/html/index.html
在master机器上查看负载均衡器的运行状况:
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.85.10:80 rr persistent 50
-> 192.168.85.90:80 Route 40 0 0
-> 192.168.85.95:80 Route 1 0 0
访问Web站点,从浏览器页面可知,访问请求跳转到了zone A
将zone A的Nginx反向代理关闭,重新访问Web站点,从浏览器页面可知,访问请求跳转到zone B
(注意清空浏览器缓存)
由此可见,LVS能够按照预期设定,通过检查绑定服务器的可用性,将Web站点的访问请求跳转到对应的反向代理服务器当中。