nginx做前端反代负载均衡,后端httpd+tomcat

实验内容:用nginx做前端反代负载均衡后端httpd+tomcat

实验环境:物理机win7,虚拟机centos7;

node1:172.18.11.111 httpd+tomcat

node2:172.18.11.112 httpd+tomcat

node3:172.18.11.113 nginx反代负载均衡

说明:httpd有两种方式与tomcat通信;

(1)httpd可使用http模块反代tomcat,此时tomcat使用http链接器;

(2)httpd还可使用ajp模块反代tomcat,此时tomcat使用ajp链接器;

在node3上:

安装nginx

]# yum  -y install nginx-1.8.0-1.el7.ngx.x86_64.rpm

]# vim /etc/nginx/conf.d/default.conf

在server配置段添加:

location / {

root   /usr/share/nginx/html;

index  index.html index.htm;

proxy_pass http://websrvs;

}

]# vim /etc/nginx/nginx.conf

在http配置段添加:

upstream websrvs {

server 172.18.11.111:80 weight=1;

server 172.18.11.112:80 weight=2;

}

分别在node1和node2上:安装httpd和tomcat

安装java运行环境:

]# yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel

]# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr

]# . /etc/profile.d/java.sh

安装tomcat:

]# yum install tomcat tomcat-lib tomcat-webapps tomcat-admin-webapps

在web工作目录创建应用存放目录;

]# cd /var/lib/tomcat/webapps/

]# mkdir testapp

]# mkdir classes lib WEB-INF META-INF

]# vim  /var/lib/tomcat/webapps/testapp/index.jsp

]# vim /etc/tomcat/server.xml

在Engine配置段添加:

<Context path="/test" docBase="testapp"/>

]# systemctl start tomcat.service

把创建的所有目录文件复制一份到node2上,然后再做配置文件修改:

]# scp -r /var/lib/tomcat/webapps/testapp/ node2:/var/lib/tomcat/webapps/

]# scp /etc/tomcat/server.xml node2:/etc/tomcat/

在node2上:

]# vim /var/lib/tomcat/webapps/testapp/index.jsp

]# systemctl start tomcat

安装好tomcat后,分别在node1和node2上安装httpd并编辑配置文件:

]# yum -y install httpd

]# vim /etc/httpd/conf/httpd.conf

#DocumentRoot "/var/www/html"

]# vim /etc/httpd/conf.d/proxy_http_tomcat.conf

因为node1和node2都是httpd本地反代tomcat,所有配置文件完全一样;

本次使用proxy_http_module反代模块基于http协议与tomcat通信:

]# httpd -M

]# systemctl start httpd

浏览器测试,输入http://172.18.11.113/testapp/index.jsp

多次刷新后,实现负载均衡且比例为1:2,实现了前端nginx反代后端tomcat。

如果要做会话粘性,可在nginx上在upstream配置段添加一条指令即可:

upstream websrvs {

server 172.18.11.111:80 weight=1;

server 172.18.11.112:80 weight=2;

ip_hash;

}

说明:ip_hash是基于源ip做会话绑定的。

浏览器测试,输入http://172.18.11.113/testapp/index.jsp

多次刷新后,会绑定在一个源ip上。

httpd还可使用ajp协议进行反代tomcat,这样的好处是避免用户请使用求跨过httpd来访问tomcat,因为如果使用http协议反代,则有可能会用户直接访问后端的tomcat而跨过了httpd。

其配置也非常简单,根据以上配置稍作修改即可:

只需修改node1和node2上的配置文件:

]# vim /etc/httpd/conf.d/proxy_http_tomcat.conf

其它都不变。

查看httpd已加载的模块:

以上过程就是简单实现nginx作为反代负载均衡至后端tomcat服务器的配置实验。

时间: 2024-11-09 12:33:03

nginx做前端反代负载均衡,后端httpd+tomcat的相关文章

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置 Nginx+Keepalived实现反代负载均衡高可用配置 OS IP 子网掩码 路由网关 Centos6.6 nginx Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 Nginx Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP

用Nginx做NodeJS应用的负载均衡

<用Nginx做NodeJS应用的负载均衡> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事. 下面,我们用Nginx做NodeJS应用的负载均衡. 1.配置Nginx 修改nginx.conf: .... upstream sample { server 127.0.0.

Nginx做为CDN缓存负载均衡代理的配置实现

系统架构: nginx+tomcat+mysql 本文只做Nginx做为CDN缓存负载均衡代理的配置实现的介绍 相关软件: nginx-1.8.1.tar.gz ngx_cache_purge-2.3.tar.gz (用于手动清理缓存) 一.nginx安装 [[email protected] ~]tar -xf nginx-1.8.1.tar.gz [[email protected] ~]tar -xf ngx_cache_purge-2.3.tar.gz -C /usr/local/ngx

nginx做为反代服务器相关配置

1.反代的模型 反代服务器实现反代功能的是 nginx-proxy 模块 虚拟服务器组实现是由 upstream 模块实现的 大概流程是:客户端发起资源请求,反代服务器上接收后(首部和body全部接收后再发,若报文小于4k内存中缓存,大于4k先缓存在硬盘上),nginx开始解析报文(此时报文源地址是客户的地址),先查看请求的资源知否在反代缓存中命中,若未命中,则自己作为客户端向服务器发起请求(此时报文源地址是反代服务器地址) 那么如何让后端服务器记录真实的客户地址呢,反代中可配置x-forwar

nginx、Apache负载均衡后端主机tomcat,并实现session保持

一.实验环境准备 1.主机规划 Apache主机 172.18.12.20 TomcatA 172.18.12.21 TomcatB 172.18.12.22 2.tomcat主机安装和配置 # yum install -y java-1.7.0-openjdk java-1.7.0-openjdk-devel # vim /etc/profile.d/java.sh # yum install -y tomcat tomcat-lib tomcat-webapps tomcat-admin-w

haproxy反代负载均衡

haproxy是用于实现作为后端反代以实现负载均衡器. 实现负载均衡有多种方案:可在tcp层即四层和应用层即七层实现负载均衡: 四层:lvs也是工作在四层的: 七层:nginx.ats等多种软件工具: haproxy域lvs相比,调度能力肯定是不如lvs,因为lvs工作在内核空间,与后端real server通信时,没有套接字数量和连接的限制,可以调度海量客户端的请求:而haproxy是工作在七层,毕竟基于套接字实现与real server通信的:但是,haproxy正因为基于七层,可以根据ht

实战nginx前端反代mogfilefs及负载均衡

实战nginx前端反代mogfilefs及负载均衡 =============================================================================== 实验描述: 使用Nginx代理请求至tackers,实现通过键就可以访问到文件: 在配置nginx做反代将用户的请求调度至后端的MogileFS,此实验依赖于nginx-mogilefs-module模块,需在编译时加上此模块. 实验环境: 再准备一台CentOS 7的虚拟主机,来作为前

LVS四层 VS Nginx七层反代(负载均衡)

1.场景: 最近不少朋友聊天谈到面试总是问到LVS四层反代和Nginx七层反代,有点不知所措. 负载均衡可以将用户的请求分发到 web集群的某台机器,反向代理也是实现了这个功能.如果后端是一台服务器就叫反向代理,如果有多台就是负载均衡.反向代理才能实现负载均衡 负载均衡是做反向代理的目的之一. 2.博主则探讨一下四层反代和的七层反代的区别(三层负载均衡不探讨),如有不足,请指出. 3.问到LVS四层.七层反代(负载均衡),则可以通过上面几个方式谈: 3.1)技术原理 3.2)优缺点 3.3)安全

keepalived+nginx实现高可用and负载均衡集群

keepalived+nginx实现高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(work