天天看點

技術幹貨|Tomcat伺服器常見功能及詳細配置

作者:運維木子李

#頭條創作挑戰賽#

技術幹貨|Tomcat伺服器常見功能及詳細配置

配置HTTP端口号:

修改conf/server.xml檔案中的<Connector>元素的port屬性來更改Tomcat的HTTP端口号。

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

配置HTTP通路日志:

取消注釋<Valve>元素,并設定className屬性為org.apache.catalina.valves.AccessLogValve,并添加directory、prefix和suffix屬性來定義日志檔案的位置和格式。

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

配置HTTPS連接配接:

取消注釋<Connector>元素的SSLEnabled屬性,并設定為true,并配置keystoreFile、keystorePass和keyAlias屬性來指定SSL證書的位置和密碼。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/keystore" keystorePass="changeit" keyAlias="tomcat" />           

配置通路控制:

在<Host>元素中添加<Valve>元素來定義通路控制規則。

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1|192\.168\.0\.*" />           

配置連接配接池:

在<Context>元素中添加<Resource>元素來配置連接配接池。

<Resource name="jdbc/myDataSource" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="myUsername" password="myPassword" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/myDatabase" />           

配置JNDI資源:

在<Context>元素中添加<Resource>元素來配置JNDI資源。

<Resource name="jdbc/myDataSource" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="myUsername" password="myPassword" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/myDatabase" />           

配置預設網頁:

修改conf/web.xml檔案中的<welcome-file-list>元素來定義預設的網頁檔案。

<welcome-file-list>  <welcome-file>index.html</welcome-file>  <welcome-file>index.htm</welcome-file>  <welcome-file>index.jsp</welcome-file></welcome-file-list>           

配置虛拟主機:

在<Host>元素中添加<Alias>元素來定義虛拟主機的别名。

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">  <Alias>mydomain.com</Alias>  ...</Host>           

配置上下文路徑:

修改<Context>元素的path屬性來定義上下文路徑。

<Context path="/myapp" docBase="myapp" debug="0" reloadable="true" />           

配置字元編碼:

在<Connector>元素中添加URIEncoding屬性來定義字元編碼。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />           

配置請求限制:

修改conf/web.xml檔案中的<security-constraint>元素來定義請求限制。

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Restricted Area</web-resource-name>
    <url-pattern>/admin/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>           

配置緩存設定:

修改<Context>元素的cachingAllowed和cacheMaxSize屬性來配置緩存設定。

<Context cachingAllowed="true" cacheMaxSize="10240" />           

配置會話逾時時間:

修改conf/web.xml檔案中的<session-config>元素的session-timeout屬性來定義會話逾時時間。

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

配置請求逾時時間:

修改<Connector>元素的connectionTimeout屬性來定義請求逾時時間。

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

配置檔案上傳限制:

修改<Connector>元素的maxPostSize屬性來定義檔案上傳的最大限制。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxPostSize="10485760" />           

配置錯誤頁面:

修改conf/web.xml檔案中的<error-page>元素來定義錯誤頁面的映射。

<error-page>
  <error-code>404</error-code>
  <location>/error404.html</location>
</error-page>           

配置AJAX支援:

修改conf/web.xml檔案中的servlet元素的async-supported屬性為true。

<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>com.example.MyServlet</servlet-class>
  <async-supported>true</async-supported>
</servlet>           

配置GZIP壓縮:

在<Connector>元素中添加compression和compressableMimeType屬性來配置GZIP壓縮。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" compressableMimeType="text/html,text/xml,text/plain" />           

配置SSL協定版本:

在<Connector>元素中添加sslProtocol屬性來指定SSL協定的版本。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLSv1.2" keystoreFile="conf/keystore" keystorePass="changeit" keyAlias="tomcat" />           

配置JSP編譯器:

修改conf/web.xml檔案中的<jsp-config>元素的<jsp-property-group>子元素來配置JSP編譯器。

<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <compiler>mycustomcompiler</compiler>
  </jsp-property-group>
</jsp-config>           

配置AJP連接配接:

在conf/server.xml檔案中添加<Connector>元素來配置AJP連接配接。

<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" />XML           

配置日志級别:

修改conf/logging.properties檔案中的java.util.logging.ConsoleHandler.level屬性來定義日志級别。

java.util.logging.ConsoleHandler.level = FINE           

配置Tomcat記憶體參數:

修改bin/setenv.sh(Unix/Linux)或bin/setenv.bat(Windows)檔案來設定Tomcat的記憶體參數。

Unix/Linux:

export CATALINA_OPTS="-Xms512m -Xmx1024m"           

Windows:

set CATALINA_OPTS=-Xms512m -Xmx1024m           

配置Tomcat運作使用者:

修改bin/setenv.sh(Unix/Linux)或bin/setenv.bat(Windows)檔案來設定Tomcat的運作使用者。

Unix/Linux:

export TOMCAT_USER=myuser           

Windows:

set TOMCAT_USER=myuser           

配置檔案說明:

  • conf/server.xml:Tomcat的主要配置檔案,用于配置連接配接器、虛拟主機等。
  • conf/web.xml:Web應用程式的部署描述符,用于配置Servlet、過濾器、錯誤頁面等。
  • conf/logging.properties:Tomcat的日志配置檔案,用于配置日志記錄器和處理程式。
  • conf/context.xml:全局上下文配置檔案,用于配置全局上下文參數、資源等。
  • bin/setenv.sh(Unix/Linux)或bin/setenv.bat(Windows):Tomcat的環境變量配置檔案,用于設定Tomcat的運作參數和環境變量。

這些配置檔案的路徑位于Tomcat安裝目錄下的conf檔案夾。

繼續閱讀