1. 首页 > IT综合教程 > 正文

IT教程FG275-IT系统应用服务器管理

1. 应用服务器概述

应用服务器是IT系统的重要组成部分,用于部署和运行各种应用程序,如Web应用、企业级应用等。常见的应用服务器包括Tomcat、Nginx、Apache、WebLogic、JBoss等。有效的应用服务器管理可以确保应用的稳定运行,提高系统的性能和可靠性。更多学习教程www.fgedu.net.cn

2. 应用服务器安装与配置

应用服务器安装与配置是应用服务器管理的基础,需要根据实际需求选择合适的应用服务器版本和配置参数。

# 安装Tomcat应用服务器
# yum install -y java-1.8.0-openjdk-devel
# wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.60/bin/apache-tomcat-9.0.60.tar.gz
# tar -xzf apache-tomcat-9.0.60.tar.gz -C /opt
# ln -s /opt/apache-tomcat-9.0.60 /opt/tomcat

# 创建Tomcat用户
# useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
# chown -R tomcat:tomcat /opt/tomcat

# 创建Tomcat服务
# vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=’CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’
Environment=’JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom’

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

# 启动Tomcat服务
# systemctl daemon-reload
# systemctl start tomcat
# systemctl enable tomcat

# 查看Tomcat服务状态
# systemctl status tomcat
● tomcat.service – Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2026-03-30 10:00:00 CST; 1h ago
Main PID: 12345 (java)
CGroup: /system.slice/tomcat.service
└─12345 /usr/lib/jvm/java-1.8.0-openjdk/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Xms512M -Xmx1024M -server -XX:+UseParallelGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

3. 应用服务器日常维护

应用服务器日常维护包括应用部署、日志管理、配置更新等,确保应用服务器的正常运行。

# 部署Web应用
# cp myapp.war /opt/tomcat/webapps/

# 查看应用部署状态
# ls -la /opt/tomcat/webapps/
total 1234
drwxr-xr-x 16 tomcat tomcat 4096 Mar 30 10:00 .
drwxr-xr-x 9 tomcat tomcat 4096 Mar 30 09:00 ..
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 10:00 ROOT
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 09:00 docs
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 09:00 examples
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 09:00 host-manager
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 09:00 manager
drwxr-xr-x 3 tomcat tomcat 4096 Mar 30 10:00 myapp
-rw-r–r– 1 tomcat tomcat 123456 Mar 30 10:00 myapp.war

# 查看Tomcat日志
# tail -f /opt/tomcat/logs/catalina.out
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.60
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Mar 30 2026 00:00:00 UTC
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.60.0
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-1160.el7.x86_64
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-1.8.0-openjdk/jre
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_322-b06
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Red Hat, Inc.
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/tomcat
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/tomcat
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.awt.headless=true
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.security.egd=file:/dev/./urandom
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512M
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024M
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -server
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseParallelGC
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -classpath
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/tomcat
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/tomcat
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: org.apache.catalina.startup.Bootstrap
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: start
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.34] using APR version [1.7.0].
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2k-fips 26 Jan 2023]
2026-03-30 10:00:00.000 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler [“http-nio-8080”]
2026-03-30 10:00:00.000 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
2026-03-30 10:00:00.000 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler [“ajp-nio-8009”]
2026-03-30 10:00:00.000 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1234 ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.60]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/tomcat/webapps/myapp.war]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/webapps/myapp.war] has finished in [1234] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/ROOT]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/ROOT] has finished in [123] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/docs]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/docs] has finished in [123] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/examples]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/examples] has finished in [1234] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/host-manager]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/host-manager] has finished in [123] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/manager]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/manager] has finished in [123] ms
2026-03-30 10:00:00.000 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [“http-nio-8080”]
2026-03-30 10:00:00.000 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [“ajp-nio-8009”]
2026-03-30 10:00:00.000 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 12345 ms

4. 应用服务器监控

应用服务器监控可以实时监控应用服务器的状态、性能和资源使用情况,及时发现并解决问题。

# 使用JMX监控Tomcat
# vi /opt/tomcat/bin/setenv.sh
export CATALINA_OPTS=”$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false”

# 重启Tomcat服务
# systemctl restart tomcat

# 使用jconsole连接JMX
# jconsole fgedudb:9999

# 查看应用服务器进程
# ps aux | grep tomcat
tomcat 12345 0.5 1.0 1234567 102400 ? Sl 10:00 0:01 /usr/lib/jvm/java-1.8.0-openjdk/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Xms512M -Xmx1024M -server -XX:+UseParallelGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

# 查看应用服务器端口
# netstat -tulpn | grep tomcat
tcp6 0 0 :::8080 :::* LISTEN 12345/java
tcp6 0 0 :::8009 :::* LISTEN 12345/java
tcp6 0 0 :::9999 :::* LISTEN 12345/java

# 查看应用服务器内存使用情况
# jstat -gc 12345
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
25600.0 25600.0 0.0 12800.0 204800.0 102400.0 512000.0 256000.0 64000.0 60000.0 8000.0 7200.0 10 0.123 2 0.456 0.579

5. 应用服务器性能优化

应用服务器性能优化包括JVM参数调优、连接池配置、缓存设置等,提高应用服务器的运行速度和响应时间。

# 优化Tomcat JVM参数
# vi /opt/tomcat/bin/setenv.sh
export CATALINA_OPTS=”$CATALINA_OPTS -Xms2G -Xmx4G -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapRegionSize=8M -XX:InitiatingHeapOccupancyPercent=45″

# 优化Tomcat连接池
# vi /opt/tomcat/conf/server.xml

# 优化Tomcat会话管理
# vi /opt/tomcat/conf/context.xml




# 重启Tomcat服务
# systemctl restart tomcat

6. 应用服务器故障排查

应用服务器故障排查是应用服务器管理的重要技能,需要掌握各种应用服务器诊断工具和方法,快速定位和解决应用服务器问题。

# 查看Tomcat错误日志
# tail -f /opt/tomcat/logs/catalina.out
2026-03-30 10:00:00.000 ERROR [http-nio-8080-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspService(index_jsp.java:123)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

# 检查应用服务器端口
# netstat -tulpn | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 12345/java

# 检查应用服务器进程
# ps aux | grep tomcat
tomcat 12345 0.5 1.0 1234567 102400 ? Sl 10:00 0:01 /usr/lib/jvm/java-1.8.0-openjdk/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Xms512M -Xmx1024M -server -XX:+UseParallelGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

# 测试应用服务器连接
# curl -I http://fgedudb:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 30 Mar 2026 10:00:00 GMT

7. 应用服务器安全管理

应用服务器安全管理包括访问控制、SSL配置、权限管理等,确保应用服务器的安全性和可靠性。

# 配置Tomcat SSL
# keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/conf/keystore.jks -keysize 2048
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: fgedudb
What is the name of your organizational unit?
[Unknown]: IT
What is the name of your organization?
[Unknown]: Test Company
What is the name of your City or Locality?
[Unknown]: Beijing
What is the name of your State or Province?
[Unknown]: Beijing
What is the two-letter country code for this unit?
[Unknown]: CN
Is CN=fgedudb, OU=IT, O=Test Company, L=Beijing, ST=Beijing, C=CN correct?
[no]: yes

Enter key password for
(RETURN if same as keystore password):

# 配置Tomcat SSL连接器
# vi /opt/tomcat/conf/server.xml




# 配置Tomcat访问控制
# vi /opt/tomcat/conf/tomcat-users.xml




# 配置Tomcat manager访问限制
# vi /opt/tomcat/webapps/manager/META-INF/context.xml


# 重启Tomcat服务
# systemctl restart tomcat

8. 应用服务器管理最佳实践

应用服务器管理最佳实践包括定期备份、监控应用服务器性能、优化应用服务器配置、制定安全策略等。

应用服务器管理最佳实践:

  • 定期备份应用服务器配置和应用程序,确保数据的安全性和可恢复性
  • 监控应用服务器性能,及时发现并解决性能问题
  • 优化应用服务器配置,提高应用服务器的性能和稳定性
  • 实施应用服务器安全措施,保护应用的安全性
  • 定期进行应用服务器维护,包括日志清理、缓存清理等
  • 建立应用服务器文档管理系统,记录应用服务器配置和使用情况
  • 培训应用服务器管理人员,提高应用服务器管理技能
  • 制定应用服务器故障响应机制,快速定位和解决应用服务器问题
风哥风哥提示:应用服务器管理是一个持续的过程,需要定期检查和优化应用服务器配置,确保应用的稳定运行。同时,要建立完善的应用服务器备份和故障响应机制,提高应用服务器管理的效率和可靠性。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息