Centos7上配置nginx的负载均衡

前言

在配置nginx负载均衡前.咱们须要明白几个名词的概念html

注: 若是不当心忘了tomcat和nginx的启动,关闭命令,可参考写在文章最后的命令nginx

一 重要的概念理解

1 什么是nginx呢?web

Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议.算法

2 什么是反向代理呢?apache

反向代理隐藏了真实的服务端,当咱们请求 www.baidu.com 的时候,就像拨打10086同样,背后可能有成千上万台服务器为咱们服务,但具体是哪一台,你不知道,也不须要知道,你只须要知道反向代理服务器是谁就行了,www.baidu.com 就是咱们的反向代理服务器,反向代理服务器会帮咱们把请求转发到真实的服务器那里去。Nginx就是性能很是好的反向代理服务器,用来作负载均衡。windows

3 什么是负载均衡呢?浏览器

负载均衡(Load Balancing)是一种将任务分派到多个服务端进程的方法。例如,将一个HTTP请求派发到实际的Web服务器中执行的过程就涉及负载均衡的实现。一个HTTP请求到达Web服务器,这中间涉及多个过程,也存在多种不一样负载均衡的方法。tomcat

4 负载均衡有什么做用呢?服务器

  1. 转发功能 按照必定的算法【权重、轮询】,将客户端请求转发到不一样应用服务器上,减轻单个服务器压力,提升系统并发量。
  2. 故障移除 经过心跳检测的方式,判断应用服务器当前是否能够正常工做,若是服务器期宕掉,自动将请求发送到其余应用服务器。
  3. 恢复添加 如检测到发生故障的应用服务器恢复工做,自动将其添加处处理用户请求队伍中。

5 负载均衡的分发策略是什么呢?session

Nginx 的 upstream目前支持的分配算法: 1)、轮询 ——1:1 轮流处理请求(默认)

每一个请求按时间顺序逐一分配到不一样的应用服务器,若是应用服务器down掉,自动剔除,剩下的继续轮询。

2)、权重 ——you can you up

经过配置权重,指定轮询概率,权重和访问比率成正比,用于应用服务器性能不均的状况。

3)、ip_哈希算法

每一个请求按访问ip的hash结果分配,这样每一个访客固定访问一个应用服务器,能够解决session共享的问题。

二 配置负载均衡

这次模拟就不在多个机器上配了,咱们把三个tomcat都装到一台机器上的不一样目录下,分别给他们不一样的端口,修改下 他们的首页,模拟一下负载均衡

First: 准备工做

一个nginx服务器,三个tomcat服务器

nginx的安装我前面有写过,同志们可参考这篇文章 tomcat就更简单了,直接上传解压,就能够在浏览器访问ip使用了,打不开,关闭下防火墙试试

个人安装目录 nginx /opt/nginx/nginx-1.8.0 tomcat /opt/tomcat/apache-tomcat-7.0.57 test1号tomcat /opt/tomcattest1/apache-tomcat-7.0.57 test2号tomcat /opt/tomcattest2/apache-tomcat-7.0.57

咱们用tomcat来给test1号和test2号作负载均衡 在这里插入图片描述

Second: 修改1号,2号tomcat的配置文件和首页

一 1号tomcat

注意: 修改tomcat的配置文件前,若是启动了tomcat,就关了再修改

1 先修改端口

vi /opt/tomcattest1/apache-tomcat-7.0.57/conf/server.xml

改三个地方,把三个没加注释的端口所有加1

注意: 要改没加注释的,加了注释的改了也没用 8005->8006 8080->8081 8009->8010 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

2 再修改一下首页,主要为了作区分

cd /opt/tomcattest1/apache-tomcat-7.0.57/webapps/ROOT
vi index.jsp
在<body>标签下加个h1标签做区分
位置: 
 <body>
        <h1>111111111111111111111111111111</h1>

3 启动tomcat

在浏览器访问

http://192.168.220.111/8081       用你本身的ip

二 2号tomcat

跟上面同样,把要修改的三个端口都加2 就好了

注意: 要改没加注释的,加了注释的改了也没用 8005->8007 8080->8082 8009->8011

浏览器访问

http://192.168.220.111/8082       用你本身的ip

Third: 配置负载均衡

注意: 修改nginx的配置文件前,若是启动了nginx,就关了再修改

修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

shift+g 跳到最下边,在最后的 } 前加入

upstream tomcatserver1 {
        server 192.168.220.111:8081 ;
         server 192.168.220.111:8082 ;
    }
  server {
        listen       80;
        server_name  love.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcatserver1;
            index  index.html index.htm;
        }


    }

解释一下 一个upstream 对应一个server 当咱们在浏览器输入 love.com (本身随便写个喜欢的域名),会先找到location里的 proxy_pass 后面的 http://tomcatserver1, 再找到tomcatserver1对应的相同名字的upstream ,而后进去找代理的ip

此时还须要在本地hosts里加上咱们的ip就能够在浏览器访问了 在windows系统下,进入

C:\Windows\System32\drivers\etc 目录下,打开hosts文件,在最下边加上

192.168.220.111 love.com

你本身的ip   和你本身配置的域名

而后启动nginx

在浏览器输入 http://192.168.220.111 不停的刷新页面,会发现1号tomcat 和2 号tomcat近乎于交替出现,也就是最开始咱们提到的负载均衡的三种分发策略中的轮询, 近乎1:1出现

扩展:

然而在现实开发中,假设咱们的多台服务器的性能好坏不同,咱们但愿性能较好的1 号服务器多代理点url,就能够进行 权重或hash配置

----------------------------

这里附上几条可能会用到的命令 Tomcat经常使用命令

启动Tomcat:
进入tomcat目录/bin,而后./startup.sh

中止Tomcat:
进入tomcat目录/bin,而后./shutdown.sh

Nginx 经常使用命令

注意nginx的配置端口的配置文件在  /usr/local/nginx/conf
并非在解压目录下

启动nginx
cd usr/local/nginx/sbin/
./nginx


重启nginx
有两种方法
1 先关闭再重启
./nginx -s quit   或者 ./nginx -s stop
./nginx

2 直接重启
./nginx -s reload


检查是否已经安装有nginx及对应目录
find /|grep nginx.conf

查看nginx占用的的端口
ps -ef| grep nginx

须要杀掉的话
kill -9 xx

原文出处:https://www.cnblogs.com/terry-love/p/11552262.html

相关文章
相关标签/搜索