Windows下nginx+tomcat实现简单的负载均衡
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。客户端不需要任何配置就可以访问。反向代理是感知不到的。
正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。正向代理可以感知。
nginx支持配置反向代理,通过反向代理实现网站的负载均衡。
一、nginx的下载
官网:http://nginx.org/en/download.html
下载里面的最新稳定版 Stable version nginx/Windows-1.14.1
下载下来是个压缩包nginx-1.14.1.zip,解压如下
确保默认80端口没被使用,双击nginx.exe,在浏览器地址栏输入localhost,可看到如下界面
二、nginx的常用命令(在cmd命令行下定位到nginx目录)
start nginx 开启nginx
nginx -v 显示 nginx 的版本。
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload 修改Nginx配置信息后,不需要关闭nginx后重新启动nginx,可让改动生效。
nginx -s reopen 重新打开日志文件。
nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t 不运行,仅测试配置文件。nginx 将检查配置文件的语法正确性,并尝试打开配置文件中所引用到的文件。
三、简单实现负载均衡
1、准备两个tomcat,本次测试用apache-tomcat-9.0.0.M15,复印一份,分别重命名为apache-tomcat-9.0.0.M15-1、apache-tomcat-9.0.0.M15-2
2、修改这两个tomcat的各3个端口,其中第一个tomcat的启动端口为10001,第2个tomcat的启动端口为10002,打开tomcat的conf目录下的server.xml,修改如下:
apache-tomcat-9.0.0.M15-1
<Server port="10011" shutdown="SHUTDOWN"> (原来是8005)
<Connector port="10001" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> (原来是8080)
<Connector port="10021" protocol="AJP/1.3" redirectPort="8443" /> (原来是8009)
apache-tomcat-9.0.0.M15-2
<Server port="10012" shutdown="SHUTDOWN"> (原来是8005)
<Connector port="10002" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> (原来是8080)
<Connector port="10023" protocol="AJP/1.3" redirectPort="8443" /> (原来是8009)
为了下面nginx区分访问的是哪一个tomcat,修改上面两个tomcat的默认页面webapps\ROOT\index.jsp,简单加个标识,
访问http://localhost:10001,标识“Apache Tomcat/9.0.0.M15 ------tomcat1”,如下
访问http://localhost:10002,标识“Apache Tomcat/9.0.0.M15 ------tomcat2”,如下
3、修改nginx配置文件
D:\javatool\nginx-1.14.1\conf\nginx.conf
因为我本机的80端口被占用了,所以修改nginx的端口为10000,详细见下图:
4、启动nginx
在命令行下start nginx后,一个窗口一闪而过,可以在cmd命令窗口输入命令 tasklist /fi "imagename eq nginx.exe" ,出现如下结果说明启动成功
5、浏览器访问http://localhost:10000
可看到访问的是http://localhost:10001或http://localhost:10002,
手工刷新,可看到两者的访问比例是1:2,就是上面nginx.conf配置的weight值1和2。
-------------------------------------------------------------------------------------------------------------
附:
Nginx负载均衡的upstream目前支持以下几种方式的分配
#1、轮询(默认)
#每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream linuxidc {
server 10.0.0.10;
server 10.0.0.11;
}
#2、weight
#指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream linuxidc{
server 10.0.0.10 weight=5;
server 10.0.0.11 weight=10;
}
#2、ip_hash
#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream favresin{
ip_hash;
server 10.0.0.10:8080;
server 10.0.0.11:8080;
}
#3、fair(第三方)
#按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream favresin{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
}
#4、url_hash(第三方)
#按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream还能够为每一个设备设置状态值,这些状态值的含义分别例如以下:
down 表示单前的server临时不參与负载。
weight 默觉得1.weight越大,负载的权重就越大。
max_fails :同意请求失败的次数默觉得1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
fail_timeout : max_fails次失败后。暂停的时间。
backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
upstream bakend{ #定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11:9090 down;
server 10.0.0.11:8080 weight=2;
server 10.0.0.11:6060;
server 10.0.0.11:7070 backup;
}
Windows下nginx+tomcat实现简单的负载均衡的更多相关文章
- nginx+tomcat实现简单的负载均衡
host1:10.0.0.10(部署nginx和tomcat) host2:10.0.0.11(部署tomcat) 平台环境(2主机一样) [root@smp ~]# uname -r3.10.0-8 ...
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
- 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构
1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...
- 搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构
1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建 Nginx 是一个高性能的 HTTP反向代理服务器 Keepalived 是一个基于VRRP协议来实现的LVS服务高可 ...
- Nginx+Tomcat多实例及负载均衡配置
Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...
- 七、CentOS 6.5 下 Nginx的反向代理和负载均衡的实现
CentOS 6.5 下 Nginx的反向代理和负载均衡的实现 * 修复上面文章的问题: 复制出一个tomcat2之后,修改service.xml文件时,要修改三个端口: 1. <!-- 800 ...
- Docker+nginx+tomcat7配置简单的负载均衡
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/4995513.html 本文介绍在Docker上配置简单的负载均衡,宿主机为Ubuntu 14.04.2 ...
随机推荐
- 一次完整的从webshell到域控的探索之路
前言 内网渗透测试资料基本上都是很多大牛的文章告诉我们思路如何,但是对于我等小菜一直是云里雾里. 于是使用什么样的工具才内网才能畅通无阻,成了大家一直以来的渴求. 今天小菜我本着所有师傅们无私分享的精 ...
- 无网络 使用pip安装mxnet
# 在有网络的同系统机器上运行以下命令:pip download mxnet# 目前mxnet版本为1.3.0,执行后当前目录得到以下文件: # . # ├── certifi--py2.py3-no ...
- Mastering MariaDB 神秘的MariaDB 中文翻译版
是某群的哥们义务翻译的,宣传一下,还没时间时间读,粗滤看了全部翻译完了300多页佩服 https://github.com/CMant/Mastering-MariaDB- 原地址:如果你需要读,请s ...
- ubuntu linux修改文件所属用户(owner属主)和组(groud属组、用户组)
使用chown命令可以修改文件或目录所属的用户: 命令格式:sudo chown 用户 目录或文件名 例如:sudo chown -R griduser /home/dir1 (把home目录下的d ...
- Codeforces 1090M - The Pleasant Walk - [签到水题][2018-2019 Russia Open High School Programming Contest Problem M]
题目链接:https://codeforces.com/contest/1090/problem/M There are n houses along the road where Anya live ...
- eclipse 中配置php的 XDebug调试
1. 打开 eclipse for php IDE,window->preference->PHP->Debug 2. 配置phpserver 3. 我的已经增加好了,默认的应该有l ...
- Python基础(十一) 类继承
类继承: 继承的想法在于,充份利用已有类的功能,在其基础上来扩展来定义新的类. Parent Class(父类) 与 Child Class(子类): 被继承的类称为父类,继承的类称为子类,一个父类, ...
- html5 javascript 事件练习1
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 玩转spring boot——war部署
前言 之前部署spring boot应用是通过直接输入命令“java -jar”来实现的.而有些情况,由于部署环境的制约,只能把项目从jar转换成war才能部署,如新浪云sae的java环境容器.那怎 ...
- Oracle表空间碎片整理SHRINK与MOVE
整理表碎片通常的方法是move表,当然move是不能在线进行的,而且move后相应的索引也会失效,oracle针对上述不足,在10g时加入了shrink,那这个方法能不能在生产中使用呢? ...