nginx的简单使用和使用nginx在windows上搭建tomcat集群
nginx是一款轻量级的web服务器,常用的作用为服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器
1.为什么我们要使用Nginx?
- 反向代理:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

- 负载均衡:负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量.

- 动静分离:将静态的资源放到反向服务器,节省用户的访问时间.

2.如何使用nginx?
- 在Windows上使用Nginx搭建Tomcat服务器
- 在windows上使用nginx方法审视简单,下载windows的nginx解压,执行nginx.exe即可
访问地址localhost
- 在windows上搭建tomcat集群的软件准备 两个tomcat和一个nginx,注意修改tomcat1的端口和tomcat2的端口,否则端口冲突启动不了 这里我是修改为tomcat1为8080,tomcat2为8090

- 启动 nginx 和 tomcat1 和tomcat2
- 准备一个简单的javaweb项目testsession,内容只有一个index.jsp,内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body> tomcat1放在tomcat1下-----放在tomcat2下就是2(为了区分用) 此次请求的<%=request.getRequestedSessionId() %>
</body>
</html> - 将此项目放在tomcat1的webapps下和tomcat2的webapps下
- 需要在http节点上添加一个
upstream servlet_jimisun{
server 127.0.0.1:8080;//后面端口是tomcat1的端口
server 127.0.0.1:8090;//后面端口是tomcat2的端口
} - 在location /节点下
proxy_pass http://servlet_jimisun;
- 访问地址localhost/testsession (注意并没有访问tomcat的端口,而是访问的80端口,nginx将请求转发给tomcat1和tomcat2


- windows上通过nginx部署tomcat集群完成......(有问题的)
- 注意Session共享问题:SessionID是不一样的,每一次请求都会创建一个新的Session,这样显然不符合我们的要求
配置nginx 修改nginx下的conf文件夹中nginx.conf
- 在windows上使用nginx方法审视简单,下载windows的nginx解压,执行nginx.exe即可
3.如何解决通过nginx部署tomcat集群的Session共享问题
- 解决Session共享方法1(仅限于windows):
- 修改tomcat的server.xml 支持共享
将 引擎标签下的 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
注释去掉 - 修改项目的web.xml 在web.xml中添加一个节点
<distributable/>
- 此时tomcat1的sessionid和tomcat2的sessionid是一样的 都会认为是一次请求


- 修改tomcat的server.xml 支持共享
- 解决Session共享方法2:将session的id放入redis中
- 解决Session共享方法3:保证一个ip地址永远访问一台tomcat服务器,就不存在session共享问题了,在upstream中添加
ip_hash;
这样刷新多少次本ip只会访问由nginx通过ip_hash算出的tomcat2服务器,这样就不存在session共享问题了
当前:nginx有更高深的用法;还有tomcat集群有更多问题需要去解决,小生不才windows集群只能给大家讲到这里,如有问题,敬请指正!
nginx的简单使用和使用nginx在windows上搭建tomcat集群的更多相关文章
- 利用nginx搭建tomcat集群
1.tomcat集群 利用nginx对请求进行分流,将请求平均的分给不同的tomcat去处理,减少单个tomcat的负载量,提高tomcat的响应速度. 2.创建多个tomcat服务器(同一个服务器上 ...
- linux搭建tomcat集群+nginx
安装JDK 一.官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下 ...
- Tengine(nginx) 搭建Tomcat集群
好久没有更新学习的内容了,就是得强迫自己写点东西 记录自己的学习,才能更好的进步! Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和 ...
- 使用nginx搭建tomcat集群配置
软件准备: (1)jdk-8u73-linux-x64.tar.gz (2)apache-tomcat-7.0.57.tar.gz (3)nginx-1.7.7.tar.gz 准备3台Linux机器, ...
- Docker如何使用nginx搭建tomcat集群
首先创建tomcat的文件夹 , 为了方便docker的配置 我这里直接在根目录中创建 第一步:创建文件夹:发布文件夹 mkdir -p /docker/tomcat/webapp8081 mkdir ...
- docker+nginx搭建tomcat集群(附录)——nginx.conf文件
附录:nginx.conf修改后的文件内容 user root;worker_processes 2; #error_log logs/error.log;#error_log logs/error. ...
- Docker+nginx搭建tomcat集群
1.环境准备: a.宿主机CentOS7 b.连接工具FinalShell c.镜像nginx1.20.1,tomcat (镜像拉取:docker pull 镜像名称) 2.创建nginx文件夹,to ...
- tomcat集群搭建集成nginx负载均衡
软件基础+版本: 1.3台centos7系统,其中都已经配置完成了jdk环境,jdk的版本为 [root@node03 bin]# java -version java version "1 ...
- Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx
第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...
随机推荐
- intelliJ IDEA 配置MySQL数据库 详解
1> 在主界面中,点击右边侧栏的 Database ,在点击 + ,再Data Source 选择数据库 2> 填入 Database 数据库名,在输入 User 和 Password ...
- Mysql对结果集的各种处理操作
c++操作- 查询mysql结果集 用mysql进行数据查询的时候,mysql会返回一个结果集给我们.接着我们需要调用mysql的api,从这个结果集中取得我们要的数据. 取完数据之后,需要释放这个结 ...
- Ubuntu下安装java
1.首先到java.com下载最新版本的jdk.下面是jdk8的网址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-dow ...
- oracle 使用occi方式插入数据时中文乱码
这个是由于数据库的编码格式和我们输入的编码格式不一致导致的. 我们使用c++插入数据时数据库的中文显示??(即乱码),但同样的数据使用navicat进行插入却显示正常. 因此,问题并不是处在服务器端的 ...
- jstl format date
使用fmt函数需在jsp中引入 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" ...
- 网页尺寸scrollHeight
http://www.imooc.com/code/1703 网页尺寸scrollHeight scrollHeight和scrollWidth,获取网页内容高度和宽度. 一.针对IE.Opera: ...
- C#中利用JQuery实现视频网站的缩略图采集
最近有朋友想要采集优酷的视频标题和缩略图 (哈哈, 并非商业目的). 找到我帮忙, 考虑到有我刚刚发布的SpiderStudio, 我毫不犹豫的答应了. 首先在网页上视频的基本结构为: div.v - ...
- Web app root system property already set to different value 错误原因及解决
http://yzxqml.iteye.com/blog/1761540 ——————————————————————————————————————————————————————————————— ...
- 使用GitHub建立个人网站
使用GitHub建立个人网站 1 Git简介 2 为什么使用Github Pages 3 创建Github Pages 3.1 安装git工具. 3.2 两种pages模式 3.3 创建步骤 3.4 ...
- js学习笔记24----焦点事件
事件: onfous : 元素获取焦点时触发事件 onblur : 元素失去焦点时触发事件 方法: obj.focus(); 可指定元素设置焦点 obj.blur(); 取消指定元素的焦点 obj.s ...