好久没有更新学习的内容了,就是得强迫自己写点东西 记录自己的学习,才能更好的进步!

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

    首先将Tengin上传到Linux服务器上,然后进行解压

  1. 安装依赖 yum -y install gcc openssl-devel pcre-devel zlib-devel
  2. 编译三步走       ./configure \

--prefix=/opt/sxt/soft/tengine-2.1.0/ \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--pid-path=/var/run/nginx/nginx.pid  \

--lock-path=/var/lock/nginx.lock \

--with-http_ssl_module \

--with-http_flv_module \

--with-http_stub_status_module \

--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/fcgi/ \

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

--http-scgi-temp-path=/var/tmp/nginx/scgi \

--with-pcre

make && make install

  1. 注意:一定要从windows复制粘贴过来

在/etc/init.d下面建立nginx文件,粘贴内容,修改路径

  1. 修改ngxin文件执行权限
  2. 配置chkconfig

  然后使用命令  service  nginx start

出现如下的效果图就是配置成功

准备两台Linux  每个Linux都安装一个tomcat

在Nginx上配置反向代理

1.反向代理

首先在两台服务器分别配置并启动tomcat,修改tomcat首页为tomcat1和tomcat2

配置反向代理和upstream

upstream backend {

server 192.168.2.141:8080 ;

server 192.168.2.142:8080;

}

server {

location / {

proxy_pass http://backend;

}

}

从上面可以看出定义一组服务器。 这些服务器可以监听不同的端口。 而且,监听在TCP和UNIX域套接字的服务器可以混用

访问分别显示tomcat1和tomcat2

两个tomcat出现的问题

Session共享
– 首先我们应该明白,为什么要实现共享,如果你的网站是存放在一个
机器上,那么是不存在这个问题的,因为会话数据就在这台机器,但
是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话id
在客户端是没有问题的,但是如果用户的两次请求到了两台不同的机
器,而它的session数据可能存在其中一台机器,这个时候就会出现取
不到session数据的情况,于是session的共享就成了一个问题

解决Session共享的方法

memcached缓存方案安装memcached

1.抛出Session一致性问题

2.安装memcached缓存数据库

通过命令安装    yum –y install memcached

    通过telnet测试memcached数据库

3.tomcat配置名称和session一致性配置

将jar包拷贝到tomcat的lib下

在tomcat的server.xml中配置jvmRoute

Linux1

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

Linux2

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

在context.xml的Context配置Manager

Linux1

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:192.168.2.141:11211"

sticky="false"

lockingMode="auto"

sessionBackupAsync="false"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

Linux2 的配置如上

4.index.jsp配置

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>

SessionID:<%=session.getId()%>

<br/>

SessionIP:<%=request.getServerName()%>

<br/>

<h1>tomcat2 page</h1>

配置好后  记得刷新 Nginx和 重启tomcat

然后在浏览器访问  就能看见访问不同的tomcat但是Session一致。

Tengine(nginx) 搭建Tomcat集群的更多相关文章

  1. 利用nginx搭建tomcat集群

    1.tomcat集群 利用nginx对请求进行分流,将请求平均的分给不同的tomcat去处理,减少单个tomcat的负载量,提高tomcat的响应速度. 2.创建多个tomcat服务器(同一个服务器上 ...

  2. 使用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机器, ...

  3. Docker如何使用nginx搭建tomcat集群

    首先创建tomcat的文件夹 , 为了方便docker的配置 我这里直接在根目录中创建 第一步:创建文件夹:发布文件夹 mkdir -p /docker/tomcat/webapp8081 mkdir ...

  4. Docker+nginx搭建tomcat集群

    1.环境准备: a.宿主机CentOS7 b.连接工具FinalShell c.镜像nginx1.20.1,tomcat (镜像拉取:docker pull 镜像名称) 2.创建nginx文件夹,to ...

  5. docker+nginx搭建tomcat集群(附录)——nginx.conf文件

    附录:nginx.conf修改后的文件内容 user root;worker_processes 2; #error_log logs/error.log;#error_log logs/error. ...

  6. nginx的简单使用和使用nginx在windows上搭建tomcat集群

    nginx是一款轻量级的web服务器,常用的作用为服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器 1.为什么我们要使用Nginx? 反向代理: 反向代理(Reverse Proxy ...

  7. 使用Nginx搭建Tomcat9集群,Redis实现Session共享

    使用Nginx搭建Tomcat9集群,Redis实现Session共享 1.tomcat准备 首先准备两个tomcat9 ,修改配置文件server.xml 如果在多个服务器上分别启动tomcat 则 ...

  8. Linux下搭建tomcat集群全记录(转)

    本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...

  9. nginx整合tomcat集群并做session共享----测试案例

    最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...

随机推荐

  1. 模拟QQ登录

    2018-10-28 15:54:38 开始写 import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.bor ...

  2. ecplise问题总结

    ecplise 1.ecplise在运行的时候出现错误 Unable to execute dex: GC overhead limit exceeded GC overhead limit exce ...

  3. PHP HTML混写,PHP中把大块HTML文本直接赋值给字符串变量的方法

    PHP HTML混写,PHP中把大块HTML文本直接赋值给字符串变量的方法 使用HEREDOC/NOWDOCHEREDOC和NOWDOC是PHP5.3开始支持的一种新特性,它允许在程序中使用一种自定义 ...

  4. navicat链接阿里云mysql报80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 for keyexchange

      http://www.jianshu.com/p/200572ed066c navicat 链接数据库 使用navicat 的ssh通道连接数据库回遇到权限问题 错误代码如下: 80070007: ...

  5. git 新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错

    是因为本地分支和远程分支没有建立联系  (使用git branch -vv  可以查看本地分支和远程分支的关联关系)  .根据命令行提示只需要执行以下命令即可git branch --set-upst ...

  6. IE haslayout的属性及其值

    haslayout是IE 渲染引擎的一个内部组成部分.在IE 中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容.为了调节这两个不同的概念,渲染引擎采用了hasl ...

  7. nodejs安装淘宝npm镜像【cnpm】

    安装完nodejs后[自带npm] 如果npm无法使用或需要FQ,可以先安装cnpm,然后使用cnpm install安装模块 安装全局cnpm npm install -g cnpm --regis ...

  8. MySQL笔记(八)存储过程练习&补充

    存储过程有什么优缺点?为什么要用存储过程?或者在什么情况下才用存储过程? 最直白的好处是存储过程比较快. 1.利用存储过程,给Employee表添加一条业务部门员工的信息. DROP PROCEDUR ...

  9. 不接入微信sdk,在APP中实现微信分享,支付

    前段时间在很多地方接入了微信的sdk,发现过程比较繁琐,此外因为导入的sdk比较大会影响最终APP打包的体积,所以就有了不接入sdk也实现相同的功能的想法. 要实现这个目标我个人认为最困难的地方是不知 ...

  10. 【题解】Luogu P3901 数列找不同

    我博客中对莫队的详细介绍 原题传送门 不错的莫队练手题 块数就直接取sqrt(n) 对所有询问进行排序 排序第一关键词:l所在第几块,第二关键词:r的位置 考虑Ai不大,暴力开数组 add时如果加之后 ...