一台tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下 所以需要一套可靠的解决方案来完善web站点架构 而Nginx只能访问静态页面,如果需要动态需要通过tomcat去解析jsp的页面。 实验为了缓解Nginx访问压力,做了两台tomcat做负载均衡,目的实现Nginx访问时,可以访问jsp页面 由tomcat做解析 ,当用户访问jsp页面时,有两台tomcat分担压力,而nginx是一款非常优秀的web服务器,很多大型网站都用nginx服务器做后端网站 程序的反向代理及负载均衡器,来提升整个站点的负载并发能力

nginx 服务器   192.168.30.24

tomcat 服务器1 192.168.30.21

tomcat 服务器2 192.168.30.22

安装tomcat8步骤

rm -rf /usr/bin/java

java -version

tar xf jdk-8u191-linux-x64.tar.gz

mv jdk1.8.0_191/ /usr/local/java

vim /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

java -version

tar xf apache-tomcat-8.5.16.tar.gz

mv apache-tomcat-8.5.16 /usr/local/tomcat8

/usr/local/tomcat8/bin/startup.sh

netstat -anpt |grep :8080

安装tomcat1和tomcat2配置一样,测试页可以修改成test2,可以看到区别

vim /usr/local/tomcat8/conf/server.xml

148   <Host name="localhost"  appBase="webapps"

unpackWARs="true" autoDeploy="true">

<Context docBase="/web/webapp" path="" reloadable="flase" >

</Context>

cp /usr/local/tomcat8/conf/server.xml{,bak}

把配置文件做备份,并放在同一目录下

mkdir /web cd

/web mdkir webapp

vim /web/webapp/index.jsp

建立一个web目录,并在里面建立一个webapp 目录,用于存放网站文件

在webapp目录下建立一个index.jsp的测试页面

<%@ page language="java" import="java.util.*"

pageEncoding="UTF-8"%>

<html>

<head>

btitle>JSP test2 page</title>

</head>

<body>

<% out.println("Welcome to test site,http://www.test2.com");%>

</body>

</html>

/usr/local/tomcat8/bin/shutdown.sh

/usr/local/tomcat8/bin/startup.sh

测试:http://192.168.30.22:8080,出现http://www.test2.com

配置Nginx

cp /usr/lcoal/nginx/conf/nginx.conf{,.bak}

vim /usr/local/nginx/conf/nginx.conf

upstream连接指定上两台tomcat,下面是nginx主配置文件

user  nginx; worker_processes  2;

#error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {     worker_connections  1024; }

http {     include       mime.types;     default_type  application/octet-stream;

'$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;

sendfile        on;

keepalive_timeout  65;         upstream tomcat_server {     server 192.168.30.21:8080 weight=1;     server 192.168.30.22:8080 weight=1;     server 192.168.30.23:8080 weight=1 backup; }

server {         listen       80;         server_name  localhost;

charset utf-8;

access_log  logs/local.access.log  main;

location / {             root   html;             index  index.html index.htm;         }

location ~\.jsp$ {                 proxy_pass http://tomcat_server;         }         #error_page    500 502 503 504  /50x.html;         #location = /50x.html {         #       root html;

}     server {         listen       81;         server_name  www.cloud.com;

charset utf-8;

access_log  logs/cloud.access.log  main;

location / {             root   html/cloud;             index  index.html index.html;         }      } }

重启Nginx,

killall -HUP nginx

访问http://192.168.30.24/index.jsp切换,可以访问到其他两台tomcat上的内容

upstream 相当于负载均衡       把server下的指定web(tomcat)上的服务器解析,请求上游,发送 至下游,给proxy_pass,解析出jsp页面 proxy_pass 相当于反向代理    把jsp页面的文件代理给tomcat_server

公司也可以做一个备份源的tomcat,这个页面的话,如果配置文件添加backup,那么正常开启的情况下 不会访问到这台服务器,如果tomcat原始的服务器宕机,那么这个备份的tomcat会自动匹配到这台 服务器上

keepalive_timeout  65;

upstream tomcat_server {

server 192.168.30.21:8080 weight=1;

server 192.168.30.22:8080 weight=1;

server 192.168.30.23:8080 weight=1 backup;

实验/usr/local/tomcat8/bin/shutdown.sh    Tomcat1

/usr/local/tomcat8/bin/shutdown.sh        Tomcat2

访问http://192.168.30.24/index.jsp,这个页面会切换到tomcat3上

nginx+tomcat实现负载均衡集群的更多相关文章

  1. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  2. 简单的 Nginx+Tomcat 配置负载均衡集群

    简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...

  3. nginx+tomcat 配置负载均衡集群 (转载)

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...

  4. Nginx +tomcat 实现负载均衡集群

    一.       工具   nginx-1.8.0 apache-tomcat-6.0.33 二.    目标   实现高性能负载均衡的Tomcat集群: 三.    步骤   1.首先下载Nginx ...

  5. Nginx+Tomcat高性能负载均衡集群搭建

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/8745794.html Nginx是一个高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3) ...

  6. Nginx+Tomcat搭建负载均衡集群

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器, 使用 Nginx 可以使得程序在高并发的情况下依旧可以保持良好的性能.使用 Nginx+Tomcat ...

  7. Nginx+Tomcat 配置负载均衡集群

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...

  8. Nginx + Tomcat 配置负载均衡集群简单实例

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...

  9. Nginx+tomcat配置负载均衡集群

    操作系统版本:Centos 6.4 Nginx版本:nginx-1.3.15.tar.gz wget http://nginx.org/download/nginx-1.5.9.tar.gz JDK版 ...

随机推荐

  1. Python基础--基本文件操作

    全部的编程语言都一样,学完了一些自带的数据机构后,就要操作文件了. 文件操作才是实战中的王道. 所以,今天就来分享一下Python中关于文件的一些基本操作. open方法 文件模式 这个模式对于写入文 ...

  2. Angular常用标记

    (如果没有特别指明,则所有的HTML元素都支持该标记) (如果没有特别指明,则 AngularJS 指令不会覆盖原生js的指令) 1.数据绑定类: 1.插值语法:{{}} 2.标签内容绑定:ng-bi ...

  3. Apache Kafka-0.8.1.1源代码编译

    作者:过往记忆 | 新浪微博:左手牵右手TEL | 能够转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明博客地址:http://www.iteblog.com/文章标题:<Apac ...

  4. USRP通信的结构体和常量(上位机、下位机共用)

    fw_common.h包括了USRP固件和上位机共用的代码,寄存器地址映射.结构体定义等 #include <stdint.h> /*! * Structs and constants f ...

  5. shell 字符串拼接 获取自身文件名 日志记录

    shell  字符串拼接 获取自身文件名 日志记录 [root@hadoop2 xiaole_chk_url]# sh a.sh123.loga.sh[root@hadoop2 xiaole_chk_ ...

  6. MVVMLight消息通知实现机制详解(一)

    最近对委托.事件的订阅使用的太多,订阅与被订阅之间的绑定约束非常...麻烦,所以翻了下MVVMLight源码找出这段可以拿出来用的部分,详情见下: 一.开发中遇到的问题: 场景1:ClassA中存在事 ...

  7. E20170623-hm

    verbose  adj. 冗长的,啰唆的,累赘的; reverse   vt. (使) 反转; (使) 颠倒; 掉换,交换; [法] 撤消,推翻;                adj. 反面的; ...

  8. 微信小程序压缩图片并上传到服务器(拿去即用)

    这里注意一下,图片压缩后的宽度是画布宽度的一半 canvasToTempFilePath 创建画布的时候会有一定的时间延迟容易失败,这里加setTimeout来缓冲一下 这是单张图片压缩,多张的压缩暂 ...

  9. Idea使用Maven搭建SpringMVC的HelloSpringMvc并配置插件Maven和Jetty

    这篇博文只是纯粹的搭建一个SpringMVC的项目, 并不会涉及里面配置文件该写些什么. 只是纯粹的搭建一个初始的Hello SpringMVC的项目. 废话不多说,上图. 1.  打开IDEA 并且 ...

  10. 使用A*寻路小记

    前几天做另一个DEMO 要用实现自动寻路功能,看到普遍都是A* 学习了下 我的主循环代码: isFindEndPoint = false; //主循环 do { CreateOutSkirtsNode ...