设为首页 收藏本站
查看: 722|回复: 0

[经验分享] tomcat单IP,多个二级域名配置方法网摘

[复制链接]

尚未签到

发表于 2015-11-14 12:53:07 | 显示全部楼层 |阅读模式
  (1)开通泛域名支持,即house.map512.cn,plan.map512.cn,map512.cn都指向同一IP,如218.4.157.245
(2)修改tomcat目录下的conf/server.xml,在engine里面添加
  <Host name=&quot;localhost&quot; debug=&quot;0&quot; appBase=&quot;E:\\Tomcat5.0\\webapps&quot;
  unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
  xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
  <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
  directory=&quot;logs&quot; prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
  timestamp=&quot;true&quot;/>
  <Context path=&quot;&quot; docBase=&quot;E:\\Tomcat5.0\\webapps\\szmap&quot; reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  <Host name=&quot;house.map512.cn&quot; debug=&quot;0&quot; appBase=&quot;E:\\Tomcat5.0\\suzhou&quot;
  unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
  xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
  <Alias>house.map512.cn</Alias>
  <Context path=&quot;&quot; docBase=&quot;E:\\Tomcat5.0\\suzhou\\szhouse&quot; reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  <Host name=&quot;plan.map512.cn&quot; debug=&quot;0&quot; appBase=&quot;E:\\Tomcat5.0\\suzhou&quot;
  unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
  xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
  <Alias>plan.map512.cn</Alias>
  <Context path=&quot;&quot; docBase=&quot;E:\\Tomcat5.0\\suzhou\\szghgs&quot; reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  <IfModule rewrite_module>  
RewriteEngine on  
rewritecond %{HTTP_HOST} ^([^.]+)\.54ttc.com$  
rewriterule ^(.+) %{HTTP_HOST}$1 [C]  
Rewriterule ^([^.]+)\.54ttc\.com(.*) http://54ttc\.com/index.jsp?username=$1  
</IfModule>
我要把人家输入的XXX.54ttc.com中的XXX传到index.jsp这个页面中,上面的格式有错吗
再一个就是XXX.54ttc.com访问的时候,跳到TOMCAT的默认页面去了,而不是跳到
www.54ttc.com的首页,请问高手如何配和如何设置啊
  
在网上找了半天也没找到相关的资料,都说的太含糊.
本人对tomcat下配置 一ip对多域名的方法详细如下,按下面配置一定能成功,经过测试了.
  <Host name=&quot;localhost&quot; debug=&quot;0&quot; appBase=&quot;D:\\Tomcat 5.0\\webapps&quot;
       unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
       xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
       <Alias>localhost.com</Alias>
       <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
                 directory=&quot;logs&quot;  prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
            timestamp=&quot;true&quot;/>
        <Context path=&quot;&quot; docBase=&quot;D:\\Tomcat 5.0\\webapps\\gg&quot;  reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  <Host name=&quot;one.localhost&quot; debug=&quot;0&quot; appBase=&quot;D:\\Tomcat 5.0\\webapps&quot;
       unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
       xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
       <Alias>one.localhost.com</Alias>
       <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
                 directory=&quot;logs&quot;  prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
            timestamp=&quot;true&quot;/>
       <Context path=&quot;&quot; docBase=&quot;D:\\Tomcat 5.0\\webapps\\kk\\a&quot;  reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  <Host name=&quot;two.localhost&quot; debug=&quot;0&quot; appBase=&quot;D:\\Tomcat 5.0\\webapps&quot;
       unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;
       xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;>
       <Alias>two.localhost.com</Alias>
       <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
                 directory=&quot;logs&quot;  prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
            timestamp=&quot;true&quot;/>
        <Context path=&quot;&quot; docBase=&quot;D:\\Tomcat 5.0\\webapps\\kk\\b&quot;  reloadable=&quot;true&quot; caseSensitive=&quot;false&quot; debug=&quot;0&quot;></Context>
</Host>
  因无域名解析服务器,所以在hosts上配,来模拟dns解析.
  10.1.1.241  localhost           指向gg文件夹
10.1.1.241  localhost.com       指向gg文件夹
10.1.1.241  one.localhost       指向a文件夹
10.1.1.241  one.localhost.com   指向a文件夹
10.1.1.241  two.localhost       指向b文件夹
10.1.1.241  two.localhost.com   指向b文件夹
  经过多方面尝试,终于在tomcat下配置成功了
  
你的Tomcat是几个呢? 是一个虚拟主机一个tomcat,还是公用一个tomcat呢?
  思路是:Apache 在全局加载 mod_jk.so 以及 jk.properties 配置,然后在虚拟主机中配置 urimapping.properties
  我的Tomcat现在是一个,但我想着再加一个的。
  Apache和Tomcat的整合我是按照你在IBM的网站上面的方法配置的,可以运行,但是里面有个警告。
  我现在想怎么去配置一个服务器怎么配置多个网站,还有配置二级域名的事情!
  谢谢各位的帮忙,再次十分感谢!
  有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案
范堡 回答于 2009-08-03 15:06 (2年前)举报
其实很简单.Apache 整合tomcat可以通过 JK, 这是往常的做法。但现在也可以通过 Apache 的反向的代理功能实现。
不过我想LZ现在应该是需要 Apache + JK + Tomcat 这种配置了。
  先问问LZ说里边报的警告是什么?
  首先说说是 Apache 的配置 httpd.conf
  LZ 需要的是配置虚拟主机, 即 Apache + JK +( tomcat1 / tomcat 2)
  这么首先配的是 httpd.conf 的虚拟主机配置
  如下:httpd.conf 找到 #NameVirtualHost 去掉前边的 # 然后配置如下
  NameVirtualHost *:80
  #########################################
  <VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot &quot;/opt/webroot&quot;
    ServerName localhost
    #ErrorLog logs/error.log
    JkMountFile conf/localhost.properties
</VirtualHost>
  #########################################
  <VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot &quot;/opt/web1&quot;
    ServerAlias www.web1.com
    #ErrorLog logs/error.log
    JkMountFile conf/web1.properties   #加载mod_jk配置路径
</VirtualHost>
  #########################################
  <VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot &quot;/opt/web2&quot;
    ServerAlias www.web2.com
    #ErrorLog logs/error.log
    JkMountFile conf/web2.properties  #加载mod_jk配置路径
</VirtualHost>
  ##################################
  以上配置的前提是你已经顺利编译安装好 mod_jk 模块
  然后修改 mod_jk 的全局配置 httpd-jk.conf
  vim conf/extra/httpd-jk.conf
  LoadModule      jk_module       modules/mod_jk.so
  JkWorkersFile   conf/workers.properties   #指定各个配置文件路径
JkMountFile     conf/urimap.properties
JkLogFile       logs/mod_jk.log
JkLogLevel      warn
  <Location /jkstatus>    #管理页面
    JkMount status
</Location>
  
:wq 保存退出
  #########################
  然后创建各自的 web1.properties ,web2.properties 配置文件,目录路径跟 httpd.conf 相同
  # vim conf/web1.properties
  /*=tomcat_web1
  !/*.gif=web1  
!/*.jpg=web1
!/*.png=web1
!/*.html=web1
!/*.htm=web1
  #第一行的意思是把请求转往代号为 tomcat_web1(命名可与虚拟主机无关) 的 tomcat 端, 一会我们需要在 workers.properties 配置中设置。
#而剩下的是不需要转往 tomcat 的请求类型, 因为 tomcat 处理静态文件性能很差, 所以这里的规则就是过滤,把静态文件处理留给apache。
:wq 保存退出
  web2.properties 的配置方式跟 web1 相同。
  #################################
  编辑 jk 全局配置
  # Vim workers.properties
  worker.list=tomcat_web1,tomcat_web2,status     #告诉 jk 你需要他统管的 tomcat 名(代号) 最后一个&quot;status&quot; 是jk 的管理页面
  worker.status.type=status  #为 status 路径设置属性为管理页面。
  ############# 先配置好每个 tomcat 与 JK 的链接参数 ################
worker.s1.type=ajp13    #协议类型
worker.s1.host=127.0.0.1 #tomcat所在服务器的ip,如果是本机就是 127.0.0.1
worker.s1.port=8108 #tomcat的端口
worker.s1.lbfactor=1 #如果是均衡负载状态,多个tomcat的负载比例。
  worker.s2.type=ajp13
worker.s2.host=127.0.0.1
worker.s2.port=8109
worker.s2.lbfactor=1
  ############## 再配置 tomcat 与 jk 的调度 ###############
  worker.tomcat_web1.type=lb    #lb 的意思是可集成多个tomcat均衡负载,但只有一个tomcat 的时候也可以使用。
worker.tomcat_web1.balance_workers=s1  #开头的&quot;worker.tomcat_web1&quot;对应web1.properties的配置。这里配置群组的tomcat成员。&quot;s1&quot; 是成员代号。对应上边tomcat的链接参数。
worker.tomcat_web1.sticky_session=True #是否打开session 粘贴。
  worker.tomcat_web2.type=lb #意义同上
worker.tomcat_web2.balance_workers=s2
worker.tomcat_web2.sticky_session=True
  :wq 配置完成后保存退出
  ###########################
  配置路径名:
  编辑或创建 urimap.properties
  # vim urimap.properties
  /*=lb         # 把请求发往 lb
/jkstatus=status  # 把JK管理页面的连接定为 http://www.web1.com/jkstatus 或者 http://www.web2.com/jkstatus
  :wq 保存退出
  你也可以修改或创建相同目录里localhost.properties 把 管理页面链接加到里边。这么链接地址就为 http://localhost/jkstatus
#####################
  然后就剩下 tomcat 了
  修改端口号对应tomcat 组这个不用说了吧?
  最重要说的是既然在各自的 web1.properties 跟 workers.properties中配置了 tomcat 名, 这么除了告诉jk tomcat的IP地址以及端口号, 还必须告诉 tomcat 他的名字。
  Engine jvmRoute=&quot;tomcat_web1&quot;
  分别在 tomcat1 跟 tomcat2 的  server.xml 中找到相应的配置. 改上相应的参数!
  到此,即完成整个 Apache + JK + tomcat 的配置过程。
  
如何配置Tomcat 多个二级域名
2011-04-11 13:58
1、
环境
Apache2.0.43.0
Tomcat 4.1.13
mod_jk-2.0.43
jdk 1.4
Windows 2003
关键文件位置:
Server.xml:$tomcat_home\conf
Httpd.conf:$apache_home\conf
Mod_jk.conf:$tomcat_home\jk\
2、
假设背景
假设顶级域名www.abc.com,要架设site1.abc.com和site2.abc.com。site1和site2两个二级站点应用都在一台服务器上,假设对外IP:100.100.100.100
3、
mod_jk整合Apache、Tomcat
这个内容网上有很多介绍,也很简单,这里就不说了。
4、
增加Tomcat虚拟主机
打开Tomcat的server.xml文件,修改默认的host段,类似如下:
  <Host name=&quot;site1.abc.com&quot; debug=&quot;0&quot; appBase=&quot;webapps&quot;
  unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;>
  <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
  directory=&quot;logs&quot;
prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
  timestamp=&quot;true&quot;/>
  <Context path=&quot;&quot; docBase=&quot;d:\\workspace\\site1\\webapp\\&quot; debug=&quot;0&quot;
  
reloadable=&quot;true&quot; crossC>
  
</Context>
  </Host>
并增加site2虚拟主机,类似如下:
  <Host name=&quot;site2.abc.com&quot; debug=&quot;0&quot; appBase=&quot;webapps&quot;
  unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;>
  <Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;
  directory=&quot;logs&quot;
prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;
  timestamp=&quot;true&quot;/>
  <Context path=&quot;&quot; docBase=&quot;d:\\workspace\\site2\\webapp\\&quot; debug=&quot;0&quot;
  
reloadable=&quot;true&quot; crossC>
  
</Context>
  </Host>
注意其中红色和蓝色加粗文字。
site2其实就是拷贝site1再对蓝色部分进行一下修改。
当然根据你的具体情况,也可以增加或者修改其他的配置。
5、
增加Apache虚拟主机
打开Apache的httpd.conf文件,在最后的VirtualHost部分增加类似如下内容:
<VirtualHost *:80>
ServerName site1.abc.com
DocumentRoot &quot;d:\workspace\site1\webapp&quot;
</VirtualHost>
<VirtualHost *:80>
ServerName site2.abc.com
DocumentRoot &quot;d:\workspace\site2\webapp&quot;
</VirtualHost>
这里DocumentRoot内容和Tomcat的Context中docBase一般来说是一致的。
找到#NameVirtualHost *这行,默认是注释掉的,修改为:
NameVirtualHost *:80
如果不打开这个配置,Apache会报错“default virtualhost overlap on port 80,the first has precedence”
如果不加“:80”,虽然也能运行起来,但Apache启动会报错。
VirtualHost*:80--mixing * prot and non-* ports with a NameVirtualHost address isnot supported,proceeding with undefined results
6、
Hosts配置
由于本机没有DNS解析,测试的时候,在浏览器地址栏输入site1.abc.com,是找不到服务器的。为了测试,我们需要增加这样的主机,让Apache能找到主机。
文本打开windows\system32\drivers\etc\Hosts文件,增加两行
127.0.0.1 site1.abc.com
127.0.0.1 site2.abc.com
启动Apache和Tomcat服务,在地址栏分别敲入site1.abc.com和site2.abc.com。应该是都可以访问了。
7、
实际部署
实际部署的时候,当然是不需要修改Hosts文件了,因为Hosts文件只是对本机有效。通常ISP提供商应该会有系统来定义二级域名转发,在那里定义二级域名对应的IP。
site1.abc.com--->100.100.100.100
stei2.abc.com--->100.100.100.100
这样,就可以实际访问两个二级域名了。但是DNS配置好后,可能不会立刻生效,据说是2~24小时生效。
8、
其他
虽然经过上面配置,基本上没什么问题了,但因为各个应用使用的技术不一样,可能会出现访问不正常的情况。
如果用了struts框架,发现*.do的请求没有响应,则修改mod_jk.conf文件,增加
JkMount /*.do ajp13
如果你希望默认页面是login.jsp而不是index.jsp,则修改httpd.conf的DirectoryIndex,将login.jsp写到index.jsp前面

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139152-1-1.html 上篇帖子: 修改Tomcat端口号 下篇帖子: Cacti如何监控Tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表