负载均衡集群——Nginx (转)
作用:通过一个Nginx分发器,使请求均衡的分发到不同的realServer上从而达到负载均衡
优势:1,可依据七层信息分发,如可将.html后缀的静态页面和.php的动态页面分发给不同的服务器从而达到性
2,可以根据不同来源将访问调度给不同的realserver,类似于DNS的视图功能
特点:Nginx 分发器无需开启转发,realserver也无需指网关。
Nginx 分发器实质是一个代理服务器,而不是一个更改数据包包头信息的转发器。这点与lvs有很大差别
缺点:基于七层分发,且是用户软件,不嵌入内核,所以速度比lvs慢
案例:要求客户端对动态页面的请求直接发到web服务器上,对静态页面的请求发到两台squid之一上,squid在
director(Nginx)(192.168.1.254):
#yum install nginx
/etc/nginx/nginx.conf (红色为添加的配置项。蓝色为视图功能,可以不加)
—————————————————————————————————————————————————
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
upstream squids{ 添加squid realserver组在下面调用
server 192.168.1.1:3128; 此处端口必须和squid realserver上真正监听端口相同
upstream apache{ 添加Apache realserver组在下面调用
server 192.168.0.3:80; }
geo $aaa { 表示只有当ip为0.247时aaa的值为0,其他都为1,将在下面蓝色部分调用
default 1;
192.168.0.247/32 0;
}
#
# The default server
#
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
if ($request_uri ~* ".*\.html$"){
proxy_pass
if ($request_uri ~* ".*\.php$"){ 定义匹配以html结尾的交给下面apache组的realserver
proxy_pass
if ($aaa) { 只有当aaa的值为真,为1时,即当ip不为0.247时,将客户端请求转给apache组
proxy_pass
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
—————————————————————————————————————————————————
# service nginx restart
一,两台squid(192.168.1.1 192.168.1.2):
/etc/squid/squid.conf
http_access allow all
http_port 3128 vhost (与上面Nginx配置的端口号一致)
cache_peer 192.168.1.3 parent 80 0 no-query originserver
# service squid restart
二,Apache(192.168.1.3)
2,在/var/www/html/下准备一个html格式的文件test.html和一个php格式的文件test.php
# service httpd restart
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正
新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑
Copyright ? 1996 - 2011 SINA Corporation, All Rights Reserved