Linux搭建nginx负载均衡(两台服务器之间)

负载均衡种类

第一种:通过硬件负载解决,常见的有NetScaler、F5、Radware和Array等商用的负载均衡器,价格比较昂贵

第二种:通过软件负载解决,常见的软件有LVS、Nginx、apache等,它们是基于Linux系统并且开源的负载均衡策略.

nginx简介

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

nginx应用场景 

1)http服务器。Nginx是一个http服务可独立提供http服务。可以做网页静态服务器。 
2)虚拟主机。能实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。 
3)反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

环境配置

操作系统:Centos Linux 7.6

nginx版本:nginx-1.16.1

服务器配置

服务器1:106.2.3.5 作为nginx负载服务(tomcat服务1)

服务器2:182.3.5.6  (tomcat服务2)

结构图

安装部署

下载好nginx安装包:wget http://nginx.org/download/nginx-1.16.1.tar.gz

1.安装nginx(服务器1)

1)首先安装好编译环境

1 [root@VM_0_10_centos tmp]# yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2)解压nginx

1 [root@VM_0_10_centos tmp]# tar -zxf nginx-1.16.1.tar.gz

切换到解压目录

3)编译安装

首先创建nginx的临时文件,存放在/var/tmp/nginx

1 [root@VM_0_10_centos nginx-1.16.1]# mkdir -p /var/tmp/nginx

执行命令

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module

出现如下图即成功

编译源码,安装nginx

1 [root@VM_0_10_centos nginx-1.16.1]# make
2 [root@VM_0_10_centos nginx-1.16.1]# make install

安装完成,查看安装目录

4)启动nginx服务

1 [root@VM_0_10_centos nginx]# cd sbin/
2 [root@VM_0_10_centos sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf

查看nginx进程是否启动

1 [root@VM_0_10_centos sbin]# ps -aux | grep nginx

注意:其中master为主进程worker为工作进程

 5)退出nginx

1 [root@VM_0_10_centos sbin]# ./nginx -s quit

6)重启nginx

1 [root@VM_0_10_centos sbin]# pwd
2 /usr/local/nginx/sbin
3 [root@VM_0_10_centos sbin]# ./nginx -s reload

7)测试nginx

 在浏览器上通过ip访问:http://localhost,出现如下界面即成功

 2.安装tomcat服务(服务器1,服务器2)

下载tomcat:https://tomcat.apache.org/

wget下载: wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.tar.gz

我选择的是tomcat8版本

 

1)解压到指定目录

1 [root@VM_0_10_centos tmp]# tar -zxf apache-tomcat-8.5.45.tar.gz -C /usr/local/

tomcat依赖于jdk,在安装tomcat服务之前先配置jdk的环境,可以参考我之前的jdk安装配置文章,这里不作介绍

2)配置tomcat服务

修改tomcat端口

1 [root@VM_0_10_centos tmp]# cd /usr/local/apache-tomcat-8.5.45/conf
2 [root@VM_0_10_centos conf]# pwd
3 /usr/local/apache-tomcat-8.5.45/conf
4 [root@VM_0_10_centos conf]# vi server.xml

 将默认的启动端口8080修改为8888端口

修改之后保存退出

 3)启动tomcat服务

进入tomcat的bin目录,启动startup.sh启动脚本

1 [root@VM_0_10_centos bin]# pwd
2 /usr/local/apache-tomcat-8.5.45/bin
3 [root@VM_0_10_centos bin]# ./startup.sh

查看是否开启成功

4)测试是否开启服务

通过浏览器访问http://ip:端口号。如下图所示则成功 

5)编写测试负载的index.html文件

创建test目录存放测试页面

服务器1:

[root@VM_0_10_centos webapps]# pwd
/usr/local/apache-tomcat-8.5.45/webapps/

  [root@VM_0_10_centos webapps]# mkdir -p test
  [root@VM_0_10_centos webapps]# ls test/
  index.html

[root@VM_0_10_centos webapps]# vi test/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>106.53.73.200</title>
    </head>
    <body>
        <h1>server1:106.53.73.200</h1>
    </body>
</html>

 服务器2:

[root@VM_0_10_centos webapps]# pwd
/usr/local/apache-tomcat-8.5.45/webapps/
[root@VM_0_10_centos webapps]# mkdir -p test 
[root@VM_0_10_centos webapps]# ls test/ index.html [root@VM_0_10_centos webapps]# vi test/index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>182.254.184.102</title> </head> <body> <h1>server2:182.254.184.102</h1> </body> </html>

通过http://ip:port/项目名/测试页面访问

 

 

 至此tomcat安装完成

3.配置nginx负载(服务器1)

 1)修改配置文件nginx.conf

[root@VM_0_10_centos ~]# cd /usr/local/nginx/conf/
[root@VM_0_10_centos conf]# vi nginx.conf

配置负载均衡,配置完保存并退出

 #20190827添加
    upstream testTomcat{
        #设置分权,权重越高优先访问
        server 106.53.73.200:8888 weight=1;
        server 182.254.184.102:8888 weight=1;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #所有请求都在这里去找分配
        location / {
            #root   html;
            index  index.html index.htm;
            #使用test分配规则,即刚刚自定义添加的upstream节点
            proxy_pass http://testTomcat/test/;
        }
 }

重新启动nginx服务

1 [root@VM_0_10_centos conf]# /usr/local/nginx/sbin/nginx -s reload

2)测试负载均衡

通过浏览器访问负载ip,出现下图即负载成功

posted @ 2019-08-27 20:57  HeiDi_BoKe  阅读(15189)  评论(1编辑  收藏  举报