nginx+tomcat实现负载均衡集群
一台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实现负载均衡集群的更多相关文章
- Nginx+Tomcat+Memcached负载均衡集群服务搭建
操作系统:CentOS6.5 本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...
- 简单的 Nginx+Tomcat 配置负载均衡集群
简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...
- nginx+tomcat 配置负载均衡集群 (转载)
一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...
- Nginx +tomcat 实现负载均衡集群
一. 工具 nginx-1.8.0 apache-tomcat-6.0.33 二. 目标 实现高性能负载均衡的Tomcat集群: 三. 步骤 1.首先下载Nginx ...
- Nginx+Tomcat高性能负载均衡集群搭建
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/8745794.html Nginx是一个高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3) ...
- Nginx+Tomcat搭建负载均衡集群
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器, 使用 Nginx 可以使得程序在高并发的情况下依旧可以保持良好的性能.使用 Nginx+Tomcat ...
- Nginx+Tomcat 配置负载均衡集群
一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...
- Nginx + Tomcat 配置负载均衡集群简单实例
一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...
- Nginx+tomcat配置负载均衡集群
操作系统版本:Centos 6.4 Nginx版本:nginx-1.3.15.tar.gz wget http://nginx.org/download/nginx-1.5.9.tar.gz JDK版 ...
随机推荐
- Linux网络编程:UDP Socket编程范例
TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯 ...
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactory
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFacto ...
- 统计ES性能的python脚本
思路:通过http请求获取es集群中某一index的索引docs数目变化来进行ES性能统计 import time from datetime import datetime import urlli ...
- [Codeforces Round495A] Sonya and Hotels
[题目链接] https://codeforces.com/contest/1004/problem/A [算法] 直接按题意模拟即可 时间复杂度 :O(NlogN) [代码] #include< ...
- 什么是JavaScript的转义字符?譬如\n有什么作用?
在JavaScript字符串中,反斜线(\)有着特殊的用途,反斜线后加一个字符,就不再表示它们的字面义了,比如\n就是一个转义字符(escape sequence),它表示的是一个换行符.在表格3-1 ...
- 什么是JavaScript对象?
对象是JavaScript的基本数据类型.对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值.对象也可看做是属性的无序集合,每个属性都是一个名/值对.属性名是字符串,因 ...
- C# 针对文件夹的操作
//创建文件夹Directory.CreateDirectory(Server.MapPath("a"));Directory.CreateDirectory(Server.Map ...
- html5: table表格与页面布局整理
传统表格布局之table标签排版总结: 默认样式: <style> table { max-width: 800px; border-spacing: 2px; border-coll ...
- 不定长数组 Vector的 应用
#include<cstdio> #include<vector> using namespace std; vector<int>a; int main() { ...
- JavaScript--编程题
某班的成绩出来了,现在老师要把班级的成绩打印出来. 效果图: XXXX年XX月X日 星期X--班级总分为:81 格式要求: 1.显示打印的日期. 格式为类似“XXXX年XX月XX日 星期X” 的当前的 ...