负载均衡集群——Nginx

 

作用:通过一个Nginx分发器,使请求均衡的分发到不同的realServer上从而达到负载均衡

优势:1,可依据七层信息分发,如可将.html后缀的静态页面和.php的动态页面分发给不同的服务器从而达到性

2,可以根据不同来源将访问调度给不同的realserver,类似于DNS的视图功能

特点:Nginx 分发器无需开启转发,realserver也无需指网关。

Nginx 分发器实质是一个代理服务器,而不是一个更改数据包包头信息的转发器。这点与lvs有很大差别

缺点:基于七层分发,且是用户软件,不嵌入内核,所以速度比lvs慢

案例:要求客户端对动态页面的请求直接发到web服务器上,对静态页面的请求发到两台squid之一上,squid在

负载均衡集群——Nginx

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




引文来源  负载均衡集群——Nginx_及时雨_新浪博客