Nginx负载均衡集群——nginx负载均衡部署

nginx提供负载均衡的模块是

  • ngx_http_proxy_module proxy代理模块,用于把请求抛给后端的服务器节点,或是upstream服务器池
  • ngx_http_upstream_module 负载均衡模块,实现服务器的负载均衡节点配置,以及健康检查

Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中

实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾。

Nginx负载均衡集群——nginx负载均衡部署_第1张图片
所有的请求统一发给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服务器的多域名虚拟主机

你可能感兴趣的:(linux,nginx)