一、准备内容
在本实例中,需要准备三台电脑,并且为每一台电脑分配相应的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
三、Web端Nginx配置管理
1)将web01及web02服务器的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; # 此处为web01的IP地址 server 10.70.21.60:80 weight=1; # 此处为web02的IP地址 }
# 定义负载虚拟主机 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