Tomcat配置--如何能够让外网通过公网IP或域名访问到服务器上面的项目

今天突然想到自己还有一台服务器可以使用,于是就准备把之前做的一个网站弄上去玩玩。结果发现不知道是因为太久没用还是什么原因,出问题了。死活连不上,就重装了一下。于是就出现了这个问题,Tomcat忘记怎么配置了。因为公司大部分项目都用的php,java没怎么动过。折腾了一上午,终于弄好了;特意记录一下免得又忘了。

  • 当前版本Tomcat 7.0

需要修改配置的文件

所有版本的文章应该都在这个目录下(除了版本号不同)

  • 修改目标文件 apache-tomcat-7.0.92\conf\server.xml

第一处修改:

将 protocol属性值为HTTP/1.1的Connector元素的port属性值改为80,这样就可以免去访问的时候还要加端口号

	
	<Service name="Catalina">
	
	
    <Connector port="8080" protocol="HTTP/1.1"
     	connectionTimeout="20000"
     	redirectPort="8443" />
    
   

注意注意注意

紧接着这个Connector元素下面也有一个Connector元素,这个元素上面啥都不要改,千万不 要改,不要问我为> 什么,因为改了会出现端口被占用的情况,要改也不要俩个Connector元素共用同一个端口, 我看其他教程上面 说两个都要改,结果启动tomcat的时候抛出了端口被占用的异常,坑死我了。

   
   
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    
  • 普及一下
  • HTTP/1.1 协议 ,用于监听浏览器发送的请求. 设置成80 后可以直接使用http://localhost 访问
  • AJP/1.3 协议 , 用于监听其他服务器转发过来的请求.

第二处修改

将 Engine元素的defaultHost值改为服务器公网IP或域名

 	
    
    <Engine name="Catalina" defaultHost="localhost">
     

第三处修改

在Host元素中将name属性值localhost改为服务器的公网IP或域名,并在元素中间插入一个元素Context,Context元素的docBase属性值可以是项目的绝对路径

	
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            
			<Context path="" docBase="C:\Program Files\apache-tomcat-7.0.92\webapps\Project"/>
        
        

        
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      Host>

这样就大功告成了,重新启动一下Tomcat就可以通过公网IP或域名访问了。

你可能感兴趣的:(Tomcat,服务器)