Tomcat之站点维护

1.  tomcat配置使用

    1.  默认站点根目录

        tomcat的默认站点根目录webapps/ROOT,配置文件为server.xml

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        客户端访问:http://ip:8080

    2.  使用其他jar包

        包名:zhenyiku.war,放到webapps目录下,会自动解压缩

        客户端访问:http://ip:8080/zhenyiku

    3.  修改默认域名

<Host name="www.test.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        修改完成后,重启tomcat  

    4.  修改tomcat访问的默认站点目录        

<Host name="www.wangjenkins.com"  appBase="/home/tomcat/www"  //这里的appBase后填写的是新的站点根目录,也可以还设置成webapps(若是webapps,则下面的Context一行必须设置)
            unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/home/tomcat/www" debug="0" reloadable="true" />  //这一行最好添加上,path后面的""里配置的是tomcat的子项目,""为空,表示是父项目

    5.  同一域名下部署多个项目

<Host name="www.wangjenkins.com" appBase="webapps"
          unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t "%r" %s %b" />
     <Context path="/huanqiu1" reloadable="true" docBase="/usr/local/tomcat7/huanqiu1"/>
     <Context path="/huanqiu2" reloadable="true" docBase="/usr/local/tomcat7/huanqiu2"/>
</Host>

        结论:

父项目是http://www.wangjenkins.com/8080/jenkins,站点目录是/usr/local/tomcat7/webapps,由于webapps下不是默认的ROOT,而是jenkins。所以访问的url里要带jenkins
两个子项目分别是:
http://www.wangjenkins.com/8080/huanqiu1,对应的站点目录是/usr/local/tomcat7/huanqiu1
http://www.wangjenkins.com/8080/huanqiu2,对于的站点目录是/usr/local/tomcat7/huanqiu2

    6.  不同域名下部署多个项目

     <Host name="localhost" appBase="webapps"                        //这个是默认的配置区域
                unpackWARs="true" autoDeploy="true">

      <!-- SingleSignOn valve, share authentication between web applications
          Documentation at: /docs/config/valve.html -->
     <!--
     <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
     -->

     <!-- Access log processes all example.
           Documentation at: /docs/config/valve.html
           Note: The pattern used is equivalent to using pattern="common" -->
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t "%r" %s %b" />

      <Host name="www.beijing.com" appBase="apps"
                unpackWARs="true" autoDeploy="true">

       <!-- SingleSignOn valve, share authentication between web applications
               Documentation at: /docs/config/valve.html -->
       <!--
       <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->

       <!-- Access log processes all example.
              Documentation at: /docs/config/valve.html
              Note: The pattern used is equivalent to using pattern="common" -->
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                  prefix="localhost_access_log." suffix=".txt"
                  pattern="%h %l %u %t "%r" %s %b" />

       <Host name="www.wangshibo.com" appBase="wang"
                 unpackWARs="true" autoDeploy="true">

       <!-- SingleSignOn valve, share authentication between web applications
               Documentation at: /docs/config/valve.html -->
       <!--
       <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->

       <!-- Access log processes all example.
              Documentation at: /docs/config/valve.html
              Note: The pattern used is equivalent to using pattern="common" -->
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="localhost_access_log." suffix=".txt"
             pattern="%h %l %u %t "%r" %s %b" />
       <Context path="/ops1" reloadable="true" docBase="/data/web/ops1"/>
       <Context path="/ops2" reloadable="true" docBase="/data/web/ops2"/>

        结论:

http://localhost:8080 对应的站点目录是/usr/local/tomcat7/webapps(假设对应站点目录下的名称都是ROOT)
http://www.beijing.com:8080 对应的站点目录是/usr/local/tomcat7/apps
http://www.wangshibo.com:8080 对应的站点目录是/usr/local/tomcat7/wang,并且这个项目下有两个子项目分别是http://www.wangshibo.com:8080/ops1、http://www.wangshibo.com:8080/ops2

    7.  Tomcat中实现IP访问控制

        1.  全局配置

            在server.xml中添加下面一行,重启服务器即可。           

            <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
            此行放在<HOST>之前。

        2.  局部配置 

            1.  限制整个站点不能被访问   

                <Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/>

                加入到<HOST></HOST>标签中

            2.  限制某个context不能访问
                <Context path="/myweb" reloadable="true" docBase="/data/tomcat6/webapps/myweb">
                <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.13.110,192.168.1.*,220.250.13.21" deny=""/>
                </Context>
        3.  根据主机名进行限制
            <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="tmachine1" deny=""/>
        4.  根据域名进行限制
            <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="*.mycompany.com,*.a.com"/>
    8.  Tomcat上传文件问题
        1.  上传文件超时
            在tomcat的bin/catalina.sh文件里,添加参数:-DLandray.sys.att.expire=600
    9.  tomcat禁用trace,put,head,options,delete请求方式
        1.  在tomcat的web.xml配置文件最后加上请求方式限制           
<security-constraint> 
        <web-resource-collection> 
            <url-pattern>/*</url-pattern> 
        <http-method>HEAD</http-method>            
            <http-method>PUT</http-method> 
            <http-method>DELETE</http-method> 
            <http-method>OPTIONS</http-method> 
            <http-method>TRACE</http-method>
        </web-resource-collection> 
        <auth-constraint> 
        </auth-constraint> 
    </security-constraint>
        2.  在server.xml中,设置allowTrace='true'
            <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"  allowTrace="true"/>
posted @ 2023-03-20 16:32  奋斗史  阅读(53)  评论(0)    收藏  举报