前言

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

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

一 重要的概念理解

1 什么是nginx呢?

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

2 什么是反向代理呢?

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

3 什么是负载均衡呢?

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

4 负载均衡有什么作用呢?

  1. 转发功能

    按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。
  2. 故障移除

    通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。
  3. 恢复添加

    如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。

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

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

Centos7上配置nginx的负载均衡的更多相关文章

  1. Centos上配置nginx+uwsgi+负载均衡配置

    负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理后端,Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以 ...

  2. windows配置nginx实现负载均衡集群

    windows配置nginx实现负载均衡集群2014-08-20 09:44:40   来源:www.abcde.cn   评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...

  3. 配置nginx的负载均衡

    1.1   什么是负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称 ...

  4. windows配置nginx实现负载均衡集群 -请求分流

    windows配置nginx实现负载均衡集群 一.windows上安装nginx 1.下载nginx的windows版本http://nginx.org/en/download.html 2.把压缩文 ...

  5. 【nginx】配置Nginx实现负载均衡

    一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件.硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最 ...

  6. 配置Nginx实现负载均衡

    在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件.硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中w ...

  7. 【高可用HA】Nginx (1) —— Mac下配置Nginx Http负载均衡(Load Balancer)之101实例

    [高可用HA]Nginx (1) -- Mac下配置Nginx Http负载均衡(Load Balancer)之101实例 nginx版本: nginx-1.9.8 参考来源: nginx.org [ ...

  8. 【Nginx】配置Nginx的负载均衡

    参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tom ...

  9. Linux上安装nginx+tomcat负载均衡

    1.Ngnix Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.  其特点是占有内 ...

随机推荐

  1. 洛谷 P2787 语文1(chin1)- 理理思维

    题意简述 维护字符串,支持以下操作: 0 l r k:求l~r中k的出现次数 1 l r k:将l~r中元素赋值为k 2 l r:询问l~r中最大连续1的长度 题解思路 珂朵莉树暴力赋值,查询 代码 ...

  2. Reactive 漫谈

    目录 概念 面向流设计 异步化 响应式宣言 参考文档 概念 Reactive Programming(响应式编程)已经不是一个新东西了. 关于 Reactive 其实是一个泛化的概念,由于很抽象,一些 ...

  3. Android使用WebView开发常见的坑

    原文链接:http://mp.weixin.qq.com/s?__biz=MzAwODE1NTI2MQ==&tempkey=uP3a%2BOgIN7vPbLfJp3BTCl2KabYi1%2F ...

  4. spring-boot-plus V1.2.1 发布 文件上传下载和静态资源访问

    [V1.2.1-RELEASE] 2019.08.21 ⭐️ New Features 文件上传保存到服务器指定目录 文件下载 访问上传的图片等资源 启用项目静态资源访问,可访问static/temp ...

  5. MongoDB的一些高级语法.md

      MongoDB的一些高级语法 AND 和 OR操作 AND操作 OR操作 嵌入式文档 插入 查询 数组(Array)字段 插入 查询 聚合(Aggregation) 筛选数据 修改字段 注意事项 ...

  6. vue项目中引入Sass

    Sass作为目前成熟,稳定,强大的css扩展语言,让越来越多的前端工程师喜欢上它.下面介绍了如何在vue项目 中引入Sass. 首先在项目文件夹执行命令 npm install vue-cli -g, ...

  7. .NET平台下,钉钉微应用开发之:获取userid

    工作需求,开发钉钉微应用和小程序,之前有接触过支付宝小程序和生活号的开发,流程没有很大的差别,这里记录下我用ASP.NET MVC实现钉钉微应用的开发,并实现获取用户的userid.小弟我技术有限,本 ...

  8. python 33 多进程(一)

    目录 多进程 1. 进程创建的两种方式 multiprocessing 2. 进程pid (process id) 3. 验证进程之间的空间隔离 4. 进程对象join方法 5. 进程对象其他属性 6 ...

  9. [Python] Django框架入门2——深入模型

    说明: 本文主要深入了解模型(models.py),涉及ORM简介.模型定义.模型成员.模型查询.自连接等.需要一定基础,可以先走一走基本入门流程. 附录一使用mysql数据库,附录二Django开发 ...

  10. 大型互联网公司分布式ID方案总结

    ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并 ...