nginx+tomcat集群配置(1)---根目录设定和多后端分发配置
前言:
对于javaer而言, nginx+tomcat集群配置, 已然成了web应用部署的主流. 大公司如此, 小公司亦然. 对于个人开发者而言, 资源有限, 往往多个web应用混部于一台服务器(云主机), 如何隔离访问这些服务资源? 彼此又不影响呢? nginx来为你排忧解难, ^_^.
本文将介绍tomcat的简单配置和部署, 以及nginx作为反向代理, 如何分流.
基础架构:
不成文的约定:
1). 一个tomcat容器部署一个webapp应用实例
2). url根目录访问webapp
简而言之, 以http://{host}:{port}来访问该webapp, 而不是http://{host}:{port}/{webapp}.

Tomcat的根目录配置:
tomcat中的webapp, 其默认访问的url规则中, 是包含{webapp}的名称. 那如何实现根目录访问呢?
• 替换ROOT目录
tomcat中, webapps/ROOT是做为其默认的根目录. 因此可以简单的把相应地webapp同名替换为ROOT, 即可到达目的. 雀占鸠巢, 是个很好很无耻的方法.
• 添加Context配置项
在conf/server.xml中, 找到Host父标签项, 在其内部添加Context项即可.
比如配置后的项如下所示:
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!— 添加该配置项, docBase为指定的根目录路径 —>
<Context path="" docBase=“/path/to/webapp"
debug=“0" crossContext="true" />
</Host>
注意Context添加的位置, docBase为webapp对应的目录(切记是解压后的目录, 而不是war文件).
在实际生产环境中, 往往把unpackWars和autoDeploy设置为false, 这样是为了防止外界非法war注入攻击.
nginx分发配置:
让我们先来谈谈域名, 再来具体配置nginx.conf.
*) 域名分配
域名是nginx分发的基础和依据. 同时域名是个非常廉价的资源, 这是一个很大的前提.
对于域名和webapp的映射关系, 往往有两种方式.
1) 一个一级域名对应一个webapp
多个域名可以映射到同个ip, 然后让域名与webapp一一对应.
2) 充分利用二级域名
*) nginx配置
在http配置项中, 添加server项列表, 每个对应一个后级服务.
http {
# 其他配置项
# webapp backend 1
# 一个一级域名对应一个webapp
server {
listen 80;
server_name domain1.com www.domain1.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
# webapp backend 2,
# 使用二级域名对应一个webapp
server {
listen 80;
server_name appA.domain2.com;
location / {
proxy_pass http://127.0.0.1:8081;
}
}
}
注意: server_name可以指定为域名, 也可以指定为ip.
具体的nginx配置细节, 就不再展开.
总结:
本文涉及的点很少, 即没有谈及nginx+tomcat配置的具体含义, 亦没有深入nginx+tomcat的性能调优. 但对于混部的webapp应用而言, 所涉及的内容能够帮助你, 迅速实现多个webapp的访问隔离.
公众号&游戏站点:
个人微信公众号: 木目的H5游戏世界

个人游戏作品集站点, 请点击访问 www.mmxfgame.com.
nginx+tomcat集群配置(1)---根目录设定和多后端分发配置的更多相关文章
- nginx+tomcat集群配置(4)--rewrite规则和多应用根目录设定思路
前言: nginx中有一块很重要的概念, 就是rewrite规则. 它会对URL进行修改, 然后进行内部的重定向. rewrite授予了nginx更多的自由, 使得后级服务的接入更加地方便. 本文将简 ...
- Nginx+Tomcat集群配置
Nginx+Tomcat集群配置 一台虚拟机作为Nginx服务 两太虚拟机配置Tomcat+jdk环境 Nginx测试 启动: cd usr/local/nginx/sbin ./nginx ---& ...
- 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...
- 160513、nginx+tomcat集群+session共享(linux)
第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...
- Nginx+Tomcat集群+session共享
Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...
- nginx+ tomcat集群+动静资源分离
不知道为什么这个随便删不掉,写了也值显示一半一半不显示, 我把重新写了一遍: nginx + tomcat集群和动静资源分离
- nginx+tomcat集群方法
下载地址:wget http://nginx.org/download/nginx-1.16.1.tar.gz 解压:tar -zxvf 预编译 nginx+tomcat集群方法: 进入nginx配置 ...
- nginx+tomcat集群负载均衡(实现session复制)
转自:http://talangniao.iteye.com/blog/341512 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面( ...
- Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...
随机推荐
- 常用的正则表达式(例如:匹配中文、匹配html)(转载)
匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串 ...
- Android 4.3正式发布:四大新功能一览
在旧金山举行的新品发布会上,Google正式发布了Android 4.3,代号仍为“Jelly Bean”.此次更新并没有太大改变,只是紧跟4.1.4.2步伐, 新增了低功耗蓝牙.多用户登录等一系列功 ...
- admob 广告Android不显示
我弄个了ane,iOS上好好的,Android上打死不显示, 最后发现是少在xml里面增加一个配置,百度半天没搜索到. <android> <manifestAddi ...
- 一台服务器搭载两个tomcat项目
之前下载的mysql 在官网是有 历史库的 如果现在一台机器上已经部署了一个tomcat服务,无论这个tomcat是否已经注册为服务了,或者没有注册windows服务,或者注册了,都没关系.都可以采 ...
- lastPathComponent的功能
下面是官方的说明: 源字符串 ---> 结果字符串 “/tmp/scratch.tiff” ---> “scratch.tiff” “/tmp/scratch” ...
- UTF-8 有BOM和无BOM
BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order).微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 AS ...
- ODI中的临时接口
在ODI 11g及后续的版本中,针对复杂的ETL处理,可分解为多个步骤,在中间步骤中使用临时接口,而不用建立相应的物理表,ODI会在处理过程中自动创建和删除这些中间表,从而降低ETL处理复杂度:同时, ...
- hadoop启动之后出现错误:Retrying connect to server: hadoop/192.168.73.100:9000. Already tried 0 time(s);
INFO ipc.Client: Retrying connect to server: hadoop/192.168.73.100:9000. Already tried 0 time(s); re ...
- android开发艺术探索
android开发艺术探索 百度任玉刚 http://blog.csdn.net/singwhatiwanna/article/details/46810527
- PAT 05-树6 Path in a Heap
这次的作业完全是依葫芦画瓢,参照云课堂<数据结构>(http://mooc.study.163.com/learn/ZJU-1000033001#/learn/content)中何钦铭老师 ...