日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat学习--配置tomcat

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat学习--配置tomcat 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.重定向web應(yīng)用

  tomcat提供統(tǒng)一的配置文件%CATALINA%\conf\server.xml。在該文件配置信息會在整個tomcat部屬的所有應(yīng)用上生效,但同時它也帶來一個問題,就是如果有進行tomcat版本的更新可能導(dǎo)致相應(yīng)的server.xml配置信息被覆蓋。如何做到當(dāng)前tomcat配置對所有部屬在此之上的應(yīng)用配置相同,但又不會因為更新tomcat等原因?qū)е屡渲眯畔⒈桓采w呢?答案就是CATALINA_BASE環(huán)境變量。Tomcat在部屬應(yīng)用時會按照%CATALINA_BASE%\conf下的配置文件啟動%CATALINA_HOME%下的tomcat應(yīng)用。例如:

mkdir tomcatAppOne cp -a $CATALINA_HOME\conf .

創(chuàng)建tomcatAppOne目錄,將tomcat安裝目錄下conf文件夾全部復(fù)制到tomcatAppOne下。

隨后,配置tomcatAppOne/conf/server.xml文件。例如將訪問端口設(shè)置到8081

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

 隨后,啟設(shè)置CATALINA_BASE環(huán)境變量并啟動tomcat

set CATALINA_BASE=d:/tomcatAppOne catalina start

在相應(yīng)的啟動輸出信息內(nèi)可以看到,當(dāng)前tomcat已經(jīng)使用tomcatAppOne下的server.xml配置的8081端口監(jiān)聽Http請求了。

2.變更Http監(jiān)聽端口8080為80

  • tomcat默認監(jiān)聽HTTP請求的端口是8080,這主要 由于默認HTTP 80端口又可能被其他應(yīng)用使用才故意為之。若想將其修改為默認端口,可以通過conf/server.xml文件來進行
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

 設(shè)置完畢后啟動應(yīng)用,tomcat這會監(jiān)聽80端口的HTTP請求。

  • 不過設(shè)置80端口有一個缺點,就是想要開啟80端口,用戶必須具有root權(quán)限(端口號小于1024的,開啟都需要具有root權(quán)限)。如果用戶沒有root權(quán)限,則可以通過設(shè)置iptables來進行,具體命令如下
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080

這兩句命令的主要作用就是將所有http 80端口連接都重定向到8080端口,此外,還需要設(shè)置server.xml

<Connector port="8080" protocol="HTTP/1.1" proxyPort=80connectionTimeout="20000" redirectPort="8443" />

啟動tomcat,此時所有80端口的http連接都將有8080端口來處理了。

3.變更tomcat內(nèi)置的jsp編譯器

  tomcat 5.5及以上版本默認的使用內(nèi)置的Eclipse JDT編譯器來編譯jsp.Eclipse JDT的作用與JDK提供的javac功能上是一致的。但這兩者之間還是存在一個區(qū)別:Eclipse JDT由于發(fā)布時間的關(guān)系,可能對java最新的一些特性并不完全支持。因此,某些情況下希望將tomcat內(nèi)置的JDT編譯器替換成jdk的javac。在tomcat 5.5及以上版本提供兩種編譯器選擇:

  • 內(nèi)置默認的eclipse JDT編譯器
  • 使用Apache Ant來編譯jsp,由于Ant默認采用JDK's JAVAC編譯器,因此采用ANT編譯jsp就等同于采用JAVAC
  • 如果希望采用ANT來替換JDT,具體的步驟如下:

  • 刪除CATALINA_HOME\common\lib\jasper-compiler-jdt.jar文件
  • 將Ant下的ant.jar復(fù)制到common\lib下
  • 將jdk下的tool.jar復(fù)制到common\lib下
  • 操作完上述步驟后,啟動tomcat,這當(dāng)前將不在使用JDT而是ANT來編譯jsp了。

    4.安全性(Security)

      tomcat通過server.xml下的Realm與web.xml的<security-constraint>來限制用于對tomcat內(nèi)資源的訪問。

    • Realms

      簡單地講,Realm就是用戶,密碼及角色所組成的配置信息。Tomcat提供四種不同Realm:

      1.UserDatabaseRealm

      UserDatabaseRealm通過加載配置在靜態(tài)文件的信息來控制資源訪問,該方式只會在tomcata啟動時刻加載,因此無法在tomcat運行期間動態(tài)修改。tomcat提供conf/tomcat-users.xml來配置用戶,密碼,角色之間的關(guān)系

    <tomcat-users> <!--NOTE: By default, no user is included in the "manager" role requiredto operate the "/manager" web application. If you wish to use this app,you must define such a user - the username and password are arbitrary. --> <!--NOTE: The sample user and role entries below are wrapped in a commentand thus are ignored when reading this file. Do not forget to remove<!.. ..> that surrounds them. --><role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="tomcat" roles="tomcat"/><user username="both" password="tomcat" roles="tomcat,role1"/><user username="role1" password="tomcat" roles="role1"/></tomcat-users>

     通過在server.xml配置對應(yīng)的UserDatabaseRealm來載入上述文件

    <Resource name="UserDatabase" auth="Container"type="org.apache.catalina.UserDatabase"description="User database that can be updated and saved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml" /><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/>

    由于UserDatabaseRealm無法在運行時修改及明文存放密碼等緣故,現(xiàn)實中使用該方式的應(yīng)用較少。

      2.JDBCRealm

      JDBCRealm主要通過數(shù)據(jù)庫來存儲用戶,密碼和角色關(guān)系,相對UserDatabaseRealm,好處在于可以運行時修改。

    <Realm class="org.apache.catalina.realm.JDBCRealm"driverName="com.mysql.jdbc.Driver"connectionUrl="jdbc:mysql://localhost/yy"connectionName="xxx"connectionPassword="1111"userTable="users" userCredCol="passwd"userRoleTable="roles" roleNameCol="role"userNameCol="name" />

    通過制定用戶,密碼和角色相關(guān)表單,來設(shè)置訪問控制。JDBCRealm雖然可以動態(tài)修改,但是由于數(shù)據(jù)庫連接信息仍然是以明文形式存儲,因此安全性方面還是不足

      3.JNDIRealm

      通過LDAP方式來設(shè)置控制信息.

      4.JAASRealm

      通過使用Java Authentication and Authorization Service來配置控制信息。

    配置完畢Realm后,還需要在web.xml配置相應(yīng)的<security-constraint>才能起到控制作用。例如:

    <security-constraint><web-resource-collection><web-resource-name>AAA</web-resource-name><url-pattern>/member/*</url-pattern></web-resource-collection><auth-constraint><role-name>member</role-name></auth-constraint> </security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>mmm<realm-name> </login-config>
    • Authentication

      Tomcat提供四種級別的安全性認證方式:

      1.Basic authentication

      認證的用戶名及密碼通過明文傳輸。設(shè)置方式

    <login-config><auth-method>BASIC</auth-method><realm-name>mmm<realm-name> </login-config>

      2.Digest authentication

      認證信息采用信息摘要方式傳輸,可使用MD5,SHA等摘要算法。設(shè)置如下

    <login-config><auth-method>DIGEST</auth-method><realm-name>mmm<realm-name> </login-config>

      server.xml中定義的Realm設(shè)置摘要算法

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase" digest="MD5" />

      3.Form Authentication

      通過表單提交認證信息

    <login-config><auth-method>FORM</auth-method><realm-name>mmm<realm-name><form-login-config><form-login-page>/login.html</form-login-page><form-error-page>/error.html</form-error-page></form-login-config> </login-config>

      4.Client-cert Authentication

    ? 使用client-cert認證,當(dāng)前連接必須采用HTTPS.

    • Single Sign-On

      如果希望在訪問資源盡可能的減少相同角色的密碼輸入,則可以通過在server.xml配置Single Sign-On來實現(xiàn)

    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

      

      5.Session管理

      tomcat提供2種session持久化設(shè)置:

  • StandardManager:默認,只有當(dāng)tomcat正常推出時才會執(zhí)行保存session到catalina_home/work/catalina/hostname/webapp-name/的session.ser文件內(nèi)
  • PersistenManager: 能實時保存session到指定的文件或者JDBC數(shù)據(jù)庫中。
  •   此外,tomcat還提供通過web.xml配置session的過期時間(單位:分)

    <session-config><session-timeout>30</session-timeout></session-config>

      

    ?

    ?

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/kittymao/archive/2012/02/29/2372547.html

    總結(jié)

    以上是生活随笔為你收集整理的Tomcat学习--配置tomcat的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。