近期公司开发了一个系统,属于一期开发阶段,需要客户那边审核。于是就有了外网访问我们内部系统的任务。总结了一下:
部署环境:Tomcat+路由+花生壳 步骤:
1、申请花生壳 免费域名,并激活花生壳服务。如:test.vicp.net
2、修改C:\Tomcat5.5\conf目录下server.xml配置文件。
【第一步】
一般我们部署系统后都有带8080端口才能访问,那如何不输入端口就能访问系统呢?(http://localhost/test)
如:http://www.csai.cn:80,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。
.修改:<Connector port="8080" 改为 port="80"
这样就完成了,你可以重启后尝试不输入端口了。
【第二步】
完成第一步后还只能内部访问,要想用域名来访问(http://test.vicp.net/test),设置如下:
.进入TP-LINK路由器管理界面 > 动态DNS,选择“启动DDNS”,输入用户名密码后点击“登录”。登录成功后免费域名会显示出来。
.进入TP-LINK路由器管理界面 > 转发规则 > 虚拟服务器,将80端口映射到服务器的局域网IP(192.168.1.52)。
.修改:<Engine name="Catalina" defaultHost="localhost"> 改为 <Engine name="Catalina" defaultHost="test.vicp.net">
.修改:<Host name="localhost" 改为 name="test.vicp.net"
.进入C:\Tomcat5.5\conf\Catalina目录,新建"test.vicp.net"目录,然后把"localhost"目录下的host-manager.xml和manager.xml拷贝到"test.vicp.net"目录
3、重启Tomcat,OK,发布个项目,然后让外网的人看能否访问吧。
-----------------------------------------------------------------------------------------------------------------------------
以上虽然实现了,但还有个别扭的地方,每次输入域名之后还要加上项目名称test,这样让人很不爽,如何只输入域名http://test.vicp.net/ 就访问系统??,配置如下:
<Host name="test.vicp.net" appBase="E:\apache-tomcat-5.5.28\apps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="E:/apache-tomcat-5.5.28/apps/test" debug="0" reloadable="true" crossContext="true"></Context>
注意:appBase 默认是webapps,我改成了"E:\apache-tomcat-5.5.28\apps", 新建的apps这个文件夹等同于webapps,为什么这样设置,因为设置了<Context ..> 会导致Tomcat servlet加载两次。
因为test应用本来就放在Tomat的默认webapp目录下(tomcat在启动时肯定会加载1次),然后又在server.xml中做了配置,为了达到访问根就可以访问test应用(这样tomcat就又加载1次);结果,Tomcat就会加载两次。
解决办法:
办法1、不要将 test 应用放在Tomat的默认部署在webapp目录下,用eclipse部署test到webapps,然后把webapps下的test剪切到apps目录,然后在server.xml中修改docBase的值为test应用在新位置的绝对路径就可以了(docBase="E:/apache-tomcat-5.5.28/apps/test");
办法2、删除掉server.xml中 Context 的手动配置,这样就不会加载两次,因为test应用在webapp下,所以在访问时,就只能是:http://ip:port/test 这样来访问了。
OK,是不是一切都好了,恭喜你。
坏了,还是有问题,那么请看下面:
如果这样弄还会出现问题,如果出现进入系统后所有系统JSP连接都404,500错误了,这时候就需要把项目里面的JSP路径改下,如:/test/index.jsp 改成 /index.jsp,因为http://ip/这样来访问默认就加载了test名称,所以JSP中不能再有test的路径 。
分享到:
相关推荐
今天刚把域名配成,就把apache与tomcat的内容整合了 包括 域名配置说明 加参考文档
使用Tomcat配置域名的方法。
TOMCAT的域名配置. TOMCAT的域名配置
Tomcat 域名设置,配置。 tomcat配置虚拟目录和域名
基于同一ip,多个域名 tomcat 配置
nginx+tomcat多域名配置 尝试过多次是比较ok!写的比较的简单有需要的朋友可以自己搭建试试做了session共享
apache+tomcat域名泛解析
tomcat配置只能域名访问禁止ip访问 直接替换tomcat里面的server.xml 文件,但是里面的ip要更换你自己的ip
配置tomcat直接输入域名访问
tomcat 配置域名 <!-- appBase 是项目名,name是域名,docBase 是项目路径--> <Context docBase="/IGames/server/tomcat/back/" path="/back"> </Host>
Apache+tomcat服务器环境中多域名的配置Apache+tomcat服务器环境中多域名的配置
Linux Tomcat绑定多个域名配置;里面有详情
NULL 博文链接:https://numberrbb.iteye.com/blog/1120192
tomcat配置多域名访问同一个服务下的多目录server。文件在一个tomcat中部署多个web应用。
tomcat域名和内存配置实例,直接copy的现有配置文件拿过来了,大伙参考一下,直接可以用的配置。另外我喜欢下东西,得圈点分,望大家见谅
为tomcat服务器配置https,tomcat需要设置的server.xml与web.xml配置。可以帮助小白为tomcat服务器配置https协议(域名)。
apache+tomcat的配置文件,实现多域名解析,让你了解企业级的配置
在此文件中介绍了在一个tomcat上配置多个域名访问。需要有多个域名及一个web服务器
这就需要在tomcat里配置多域名,添加多个虚拟主机。 主要在server.xml里面设置: 在<Engine></Engine>里面添加两个<Host></Host>标签,内容如下: <Host name=www.123.com appBase=/usr/local/tomcat/webapps/123 ...
apache + tomcat整合配置二级域名