`
yaojialing
  • 浏览: 253187 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

近期公司开发了一个系统,属于一期开发阶段,需要客户那边审核。于是就有了外网访问我们内部系统的任务。总结了一下:

 

部署环境: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的路径 。 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics