实现一个简单的轮询负载

一、准备内容

在本实例中,需要准备三台电脑,并且为每一台电脑分配相应的IP地址,由于IP地址在实验环境中存在差异,所以在以下的操作中,使用机器名称来确定操作的机器。

lb01: Nginx 主负载均衡器

web01: web服务器1

web02: web服务器2

 

二、编译安装Nginx

1)安装必要的工具集

# yum install wget vim gcc –y

 

2)安装依赖包集合

# yum install openssl openssl-devel pcre pcre-devel -y

 

3)下载nginx

# mkdir /home/tools

# cd /home/tools

# wget http://nginx.org/download/nginx-1.6.3.tar.gz

 

4)创建管理用户

# useradd nginx -s /sbin/nologin –M

 

5)解压并安装

# tar -zxvf nginx-1.6.3.tar.gz

# cd nginx-1.6.3

# ./configure –user=nginx –group=nginx –prefix=/data/nginx-1.6.3 –with-http_stub_status_module –with-http_ssl_module

# make && make install

# ln -s /data/nginx-1.6.3/ /data/nginx

 

6)测试Nginx是否安装成功

# /data/nginx/sbin/nginx –t

# /data/nginx/sbin/nginx

 

 

三、WebNginx配置管理

1)将web01web02服务器的Nginx的配置文件进行如下修改。

# vi /data/nginx/conf/nginx.conf

worker_processes  1;

 

events {

worker_connections  1024;

}

 

http {

include       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”‘;

sendfile        on;

keepalive_timeout  65;

 

server {

listen       80;

server_name  bbs.ls.com;  # 此处为自定义的域名

 

location / {

root   html/bbs;

index  index.html index.htm;

}

access_log logs/access_bbs.log main;

}

 

server {

listen       80;

server_name  www.ls.com;  # 此处为自定义的域名

 

location / {

root   html/www;

index  index.html index.htm;

}

access_log logs/access_www.log main;

}

}

 

2)在web01服务器上建立测试目录及文件

# mkdir /data/nginx/html/{www,bbs}

# echo “web01 www” >> /data/nginx/html/www/index.html

# echo “web01 bbs” >> /data/nginx/html/bbs/index.html

# curl 127.0.0.1

 

3)在web02服务器上建立测试目录及文件

# mkdir /data/nginx/html/{www,bbs}

# echo “web02 www” >> /data/nginx/html/www/index.html

# echo “web02 bbs” >> /data/nginx/html/bbs/index.html

# curl 127.0.0.1

 

四、负载端Nginx配置管理

1)将lb01服务器的Nginx的配置文件进行如下修改。

# vi /data/nginx/conf/nginx.conf

worker_processes  1;

 

events {

worker_connections  1024;

}

 

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

# WEB服务器池,包括两个节点。

upstream www_server_pools {

server 10.70.21.87:80 weight=1; # 此处为web01IP地址

server 10.70.21.60:80 weight=1; # 此处为web02IP地址

}

 

# 定义负载虚拟主机

server {

listen       80;

server_name  www.ls.com; # 此处为自定义的域名

 

location / {

# 代理请求发送到服务器池中

proxy_pass http://www_server_pools;

}

}

}

 

2)将lb01服务器上进行平滑重启。

# /data/nginx/sbin/nginx -s reload

 

3)将lb01服务器上测试负载(10.70.21.101为lb01服务器的地址)

# echo “10.70.21.101 www.ls.com” >> /etc/hosts

# curl www.ls.com

 

 

 

 

 

转载请附上原文出处链接及本声明
李老师的博客 » 实现一个简单的轮询负载

发表评论

提供最优质的文章集合

立即查看 了解详情