nginx基于HTTP实现负载均衡tomcat

配置环境:

最少两台tomcat服务器和一台nginx服务器

先来配置tomcat服务器1,在安装了tomcat服务的基础上

1.首先在根目录下建立一个web目录,并在里边建立一个webapp目录,用于存放网站文件

mkdir -pv /web/webapp

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

vim /web/webapp/index.jsp

添加内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>JSP test page</title>

  </head>

  <body>

    <% out.println{"Welcome to test site,http://www.test1.com"};%>

  </body>

</html>

3.修改tomcat的server.xml文件

定义一个虚拟主机,并将网页文件路径指向已经建立的/web/webapp,在host段增加context段

cd /usr/local/tomcat8/conf/

cp server.xml server.xml.bak

vim server.xml

150行添加内容:

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

</Context>

4.重启服务

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

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

5.进入网页进行测试

IP地址后跟端口号:8080

6.查看文件日志

ls /usr/local/tomcat/logs/

tomcat服务器2,同1配置一样,只有在主配置文件中的网页不同

===========================================================

接下来在安装了nginx服务的基础上配置nginx服务器

1.修改配置文件

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

添加内容:

在keepalive timeout 65下

upstream tomcat_server{    #定义一个资源池,用来存放多个调度服务器

server 192.168.200.111:8080 weight=1;  #weight代表权重,能力越大,权重越大

server 192.168.200.112:8080 weight=1;  

}

**负载均衡调度状态:

down  表示当前server不参与负载

backup  预留的备用机器,压力小

max_fails  允许请求失败的次数

fail_timeout  请求失败超时时间,在经历max_fails后,暂停服务

在一个location下

location ~\.jsp${

  proxy_pass http://tomcat_server;  #调用资源池

  proxy_set_header Host $http_host;  #添加反向代理头

}

2.创建一个软连接

ln -s /usr/local/nginx/sbin/nginx /usr/sbin/

3.起服务

killall -HUP nginx

注:如果后端服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误。

原文地址:https://www.cnblogs.com/990114-jhc/p/11557839.html

时间: 2024-10-02 01:14:35

nginx基于HTTP实现负载均衡tomcat的相关文章

Nginx基于TCP的负载均衡的配置例子

原文:https://blog.csdn.net/bigtree_3721/article/details/72833955 nginx-1.9.0 已发布,该版本增加了 stream 模块用于一般的 TCP 代理和负载均衡. The ngx_stream_core_module module is available since version 1.9.0. This module is not built by default, it should be enabled with the -

apache基于mod_jk模块实现代理及负载均衡Tomcat Cluster

一.基于mod_jk模块实现apache代理tomcat 上篇博文已经学习了nginx代理和负载均衡tomcat及apache基于mod_proxy模块代理tomcat; 现在来学习下apache基于mod_jk模块实现代理及负载均衡Tomcat Cluster 1.基于httpd代理tomcat时可以使用httpd的两个模块 1)mod_jk:第三方模块 mod_jk是ASF的一个项目,是一个工作于apache端基于AJP协议与Tomcat通信的连接器,它是apache的一个模块,是AJP协议

使用nginx sticky实现基于cookie的负载均衡

在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接.使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器.如果基于cookie会是一种什么情形,想想看, 每台电脑都会有不同的cookie,在保持长连接的同时还保证了服务器的压力均衡,nginx sticky值得推荐. 如果浏览器不支持coo

haproxy、nginx以及httpd负载均衡tomcat主机,seesion保持问题

**实验环境** CentOS 7 haproxy(nginx):172.16.61.4(node4) httpd+tomcat:172.16.61.7(node7) 172.16.61.8(node8) 一.使用nginx做负载均衡 **配置tomcat以及httpd** <Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat8">   #在node8节点添加

使用nginx sticky实现基于cookie的负载均衡【转】

在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接.使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器.如果基于cookie会是一种什么情形,想想看, 每台电脑都会有不同的cookie,在保持长连接的同时还保证了服务器的压力均衡,nginx sticky值得推荐. 如果浏览器不支持coo

tomcat结合nginx或apache实现负载均衡

基于Nginx为web代理服务器配置 前端Nginx配置: yum -y install nginx-1.4.7-1.el6.ngx.x86_64.rpm vim /etc/nginx/nginx.conf 添加一下内容 upstream tomcat { 定义一个名为tomcat的upstream server 172.16.254.151:80; server 172.16.254.144:8080; } 编辑/etc/nginx/conf.d/default.conf配置文件 启动ngin

nginx和httpd反向代理和负载均衡tomcat集群

实验准备: 1.虚拟机172.18.250.77 安装nginx和httpd 实现负载均衡和反向代理 2.虚拟机172.18.250.78 安装tomcat 3.虚拟机172.18.250.79 安装tomcat 架构图: 一.nginx反向代理和负载均衡 1.安装nginx和tomcat ]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm  ]# ls apache-tomcat-7.0.55.tar.gz  jdk-7u79-linux-x64.rpm 

Tomcat(五):nginx/httpd + tomcat及负载均衡tomcat

*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h

基于Nginx反向代理及负载均衡

基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是开启的,因为proxy属于nginx内置标准模块,通常实现代理的时候,最核心模块是proxy_pass,用于将用户请求的rui递交至上游服务器的某个URI但这个模块大部分用于location当中,因此要实现将某一URI的访问代理某个上游服务器大致的格式为: location /name/ { pro