一台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上

最新文章

  1. C++中 引入虚基类的作用
  2. [体感游戏] 1、MPU6050数据采集传输与可视化
  3. 用jquery写循环播放div -2
  4. Log4net Dll用法
  5. Ubuntu封装制作ISO镜像
  6. codechef January Challenge 2014 Sereja and Graph
  7. backup archivelog all
  8. 【Java接口实现动态加载不同的类】
  9. shell 脚本阅读之二——ltp工具下的runltp
  10. Nim函数调用的几种形
  11. 《java.util.concurrent 包源码阅读》03 锁
  12. Mybatis源码之Statement处理器StatementHandler(一)
  13. JavaScript设计模式Item 1—多态
  14. selenium操作浏览器cookies
  15. 使用Go语言操作MySQL数据库的思路与步骤
  16. 使用虚拟化KVM安装RHEL7系统
  17. sqlite读写
  18. 对ORM的支持 之 8.4 集成JPA ——跟我学spring3
  19. 【Python】京东商品价格监控
  20. 配置搭建与使用redis

热门文章

  1. Swift之闭包
  2. 【大话QT之十四】QT实现多语言切换
  3. Project Euler:Problem 42 Coded triangle numbers
  4. android自己定义控件系列教程-----仿新版优酷评论剧集卡片滑动控件
  5. LeetCode 443. String Compression (压缩字符串)
  6. 寒城攻略:Listo 教你用 Swift 写IOS UI 项目生活记事本
  7. Scroller的应用--滑屏实现
  8. coffeescript的上下文
  9. 移植linux3.7到nuc900系列开发板遇到的问题
  10. 【POJ 3784】 Running Median