nginx提供负载均衡的模块是
Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中
实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾。
所有的请求统一发给Nginx负载均衡服务器,然后由负载均衡器通过调度算法再来请求Web01/02/03
负载均衡机器规划
服务器web01 192.168.178.124
服务器web02(防止站点1故障) 192.168.178.125
负载均衡器lb01 192.168.178.126
负载均衡器lb02(防止主节点故障) 192.168.178.127
软件准备
系统:CentOS Linux release 7.5.1804 (Core)
软件:nginx version: nginx/1.16.0
四台机器分别安装nginx
1.安装依赖环境,重要
注意统一更换阿里云yum源!
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel wget vim -y
2.编译安装nginx,编译安装能够统一管理目录,便于后期维护
mkdir -p /home/chaoge/tools
wget -P /home/chaoge/tools/ http://nginx.org/download/nginx-1.16.0.tar.gz
3.解压缩安装nginx
cd /home/chaoge/tools/
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0
./configure --user=nginx --group=nginx --prefix=/opt/nginx-1.16.0 && make && make install
4.统一配置nginx环境变量
ln -s /opt/nginx-1.16.0/ /opt/nginx
#检查软连接
ls -dl /opt/nginx
5.配置nginx环境变量
echo "PATH='/opt/nginx/sbin:/opt/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin'" >> /etc/profile
source /etc/profile
6.检查nginx环境变量
which nginx
7.创建nginx用户
useradd nginx -s /sbin/nologin -M
8.开启nginx
nginx
配置测试nginx的服务(web01,web02)
1.备份配置文件
[root@web01 opt]# cp /opt/nginx/conf/nginx.conf{,.bak}
2.修改配置文件
[root@web01 nginx-1.16.0]# cat /opt/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
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"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name bbs.chaoge.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html/bbs;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.chaoge.com;
location / {
root html/www;
index index.html index.htm;
}
access_log logs/access_www.log;
}
}
3.创建测试站点的资源数据
#创建数据文件夹
mkdir -p /opt/nginx/html/{www,bbs}
#创建nginx静态网页文件
[root@web01 opt]# echo "chaoge_www_124" > /opt/nginx/html/www/index.html
[root@web01 opt]# echo "chaoge_bbs_124" > /opt/nginx/html/bbs/index.html
#启动nginx,检测语法
[root@web01 opt]# nginx -t
nginx: the configuration file /opt/nginx-1.16.0//conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx-1.16.0//conf/nginx.conf test is successful
[root@web01 opt]#
[root@web01 opt]# nginx
[root@web01 opt]# netstat -tunlp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7981/nginx: master
#配置本地dns解析
[root@web01 opt]# echo "192.168.178.124 www.chaoge.com bbs.chaoge.com" >> /etc/hosts
#使用curl命令检测nginx站点
[root@web01 opt]# curl www.chaoge.com
chaoge_www_121
[root@web01 opt]# curl bbs.chaoge.com
chaoge_bbs_121
#同样的步骤,在web02上再执行一遍即可,注意区分两台机器的IP
区别就在这里
[root@web01 opt]# echo "chaoge_www_125" > /opt/nginx/html/www/index.html
[root@web01 opt]# echo "chaoge_bbs_125" > /opt/nginx/html/bbs/index.html
[root@web02 nginx-1.16.0]# echo "192.168.178.125 www.chaoge.com bbs.chaoge.com" >> /etc/hosts
小提示
在负载均衡的搭建上,两台web服务器的资料应该是一样的
通过如上的配置,就配置好了两台web服务器的多域名虚拟主机