← 返回首页目录
# 在 UNIX 和 Linux 系统上安装与配置 WebSphere Application Server
> 作者:吉祥法师
## 概述
WebSphere Application Server(WAS)是 IBM 推出的企业级 Java 应用服务器,长期以来一直是企业关键业务应用的核心运行平台。尽管当前微服务架构和云原生技术蓬勃发展,WebSphere 依然是众多大型企业核心系统的基石,其稳定性、可扩展性和安全管理能力在全球范围内获得了广泛验证。UNIX 和 Linux 系统凭借其出色的稳定性、高可用性和性能表现,成为部署 WebSphere Application Server 的理想平台。本教程面向系统管理员和运维工程师,详细阐述如何在 UNIX(如 AIX、Solaris)和 Linux 系统上完成 WebSphere Application Server 的安装、配置与基本验证,帮助读者建立从零到可运行环境的完整操作路径。
## 核心概念解析
在开始安装操作之前,理解几个关键概念将有助于提高部署效率和质量:
**Profile(概要文件)**:WebSphere Application Server 的核心管理单元。每个 Profile 包含独立的配置文件、应用程序部署信息和运行时环境,相当于一个独立的服务器实例。一个物理主机上可以创建多个 Profile,实现多实例共存。
**Node(节点)**:指安装了 WebSphere 并注册到某个单元(Cell)的物理主机。节点是 Cell 的基本组成单元,每个节点可以有多个应用服务器实例。
**Cell(单元)**:由一个 Deployment Manager(部署管理器)和多个受管节点组成的逻辑管理域。Cell 提供了统一的配置管理和集中监控能力。
**Deployment Manager(部署管理器)**:管理 Cell 中所有节点的中心控制进程,负责配置同步和应用部署的集中管理。
**Standalone Server(独立服务器)**:不加入任何 Cell,单独运行的服务器实例,适合开发测试环境。
理解这些概念是后续配置操作的基础。在传统单体应用中,合理的 Cell 和 Node 划分直接决定了管理的便利性和资源利用效率;而在现代容器化部署中,WAS 也提供了与传统虚拟机环境一致的管理模型,方便将现有资产平滑迁移至云环境。
## 安装前系统准备
### 硬件要求
WebSphere Application Server 对硬件有一定要求,合理的资源配置是保障稳定运行的前提。处理器方面,建议至少使用 1 GHz 以上频率的 CPU,多核处理器能够显著提升并发处理能力;内存方面,基础安装至少需要 2 GB 可用内存,对于生产环境建议 8 GB 以上,以满足 JVM 堆设置和操作系统缓存需求;磁盘空间方面,完整安装需要至少 10 GB 可用空间,其中安装包解压、产品文件和 Profile 文件各占相当比例,强烈建议预留额外空间用于日志增长和临时文件。
### 操作系统要求
WAS 对操作系统版本有明确的支持矩阵要求,具体支持列表应始终参考 IBM 官方文档,以确保系统的稳定兼容性。在 Linux 平台,Red Hat Enterprise Linux、SUSE Linux Enterprise Server 和 Ubuntu LTS 版本是常见选择;在 UNIX 平台,IBM AIX 和 Oracle Solaris 得到良好支持。此外,建议在安装前确认系统已配置正确的主机名(hostname)和 DNS 解析,WebSphere 对网络配置文件非常敏感,错误的配置可能导致集群通信失败。
### 系统参数调优
登录系统后,首先检查并调整以下参数。文件描述符限制(file descriptor limits)是第一个重点,WebSphere 需要大量并发网络连接,建议将 `nofile` 软硬限制设置为 65536 以上;进程数限制(nproc)影响线程创建能力,建议设为 65536 或更高;虚拟内存限制建议设置为 unlimited,避免 JVM 内存映射失败。可编辑 `/etc/security/limits.conf`(Linux)或使用 `ulimit` 命令进行调整。
其他重要参数包括:建议禁用 SELinux 或设置为 permissive 模式,避免安全策略干扰;确保系统的 swap 空间充足,通常为主内存的 1-2 倍;检查并确保 `/tmp` 目录有足够的可用空间,安装程序默认会在 `/tmp` 下创建临时文件。
### 创建专用用户和目录
安全最佳实践要求使用专用非 root 用户运行 WebSphere 服务。创建专用组和用户并设置密码后,需要以 root 身份设置该用户对安装目录和 Profile 目录的完全所有权:
```bash
groupadd wasadmin
useradd -g wasadmin -m -s /bin/bash wasadmin
passwd wasadmin
mkdir -p /opt/IBM/WebSphere
mkdir -p /var/wasprofiles
chown -R wasadmin:wasadmin /opt/IBM/WebSphere
chown -R wasadmin:wasadmin /var/wasprofiles
```
完成上述准备后,建议使用 `uname -a` 和 `cat /etc/os-release` 确认当前内核和发行版版本,与 IBM 支持矩阵进行核对。IBM 提供了系统需求检测工具,可在安装前自动评估兼容性,推荐在正式安装前运行。
## WebSphere Application Server 安装
### 获取安装介质
从 IBM Passport Advantage 网站下载合适的安装包。安装包通常为 `.tar.gz` 或 `.zip` 格式的压缩文件。下载完成后,以 wasadmin 用户解压到准备分区中,并确认所有文件权限正确:
```bash
su - wasadmin
mkdir -p /tmp/was_install
tar -xzf was.cd.8550.xx.tar.gz -C /tmp/was_install
chmod -R +x /tmp/was_install
```
同时确认磁盘剩余空间充足,安装程序运行期间可能需要额外的临时空间(一般为 2-3 GB)。
### 使用命令行方式安装
命令行方式适合大批量自动部署和无人值守安装。与图形化安装相比,命令行方式更灵活、更易标准化,在服务器环境或远程环境中优势明显。进入安装目录后,使用响应文件(response file)方式执行安装。响应文件预先定义所有安装选项,实现完全自动化的标准安装。基本安装命令如下:
```bash
cd /tmp/was_install
./install -options /path/to/responsefile.txt -silent
```
一个最小化的响应文件 `install_resp.txt` 内容如下:
```
-OPT silentInstallLicenseAcceptance=true
-OPT disableNonBlockingPrereqChecking=true
-OPT installType=installNew
-OPT feature=archives,corebinary,ejbdeploy,embeddablecontainer,thinclient
-OPT installLocation=/opt/IBM/WebSphere/AppServer
-OPT profileType=standalone
-OPT profileName=AppSrv01
-OPT profilePath=/var/wasprofiles/AppSrv01
-OPT templateName=default
-OPT nodeName=node01
-OPT hostName=myhost.example.com
-OPT enableAdminSecurity=true
-OPT adminUserName=wasadmin
-OPT adminPassword=yourpassword
```
安装过程中,可以通过查看安装日志(`logs/install/log.txt`)来监控进度和排查错误。安装完成后,会在安装目录下生成 `properties/version/` 目录,其中包含产品版本信息文件。
### 验证安装结果
安装完成后,执行以下命令验证产品是否正确安装:
```bash
/opt/IBM/WebSphere/AppServer/bin/versionInfo.sh
```
该命令输出产品名称、版本号、内部版本等详细信息。同时,检查安装目录结构,确保 `bin/`、`profiles/`、`lib/` 等关键目录存在且结构正确。还可以运行:
```bash
/opt/IBM/WebSphere/AppServer/bin/managesdk.sh -listEnabled
```
该命令列出已启用的 Java SDK 版本,确认默认 JDK 正确配置。
## 创建与管理 Profile
### 创建独立服务器 Profile
独立服务器 Profile 是最基础、最常用的部署形态,适合单服务器应用部署。使用 `manageprofiles.sh` 命令创建:
```bash
/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create \
-profileName AppSrv01 \
-profilePath /var/wasprofiles/AppSrv01 \
-templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default \
-nodeName node01 \
-hostName myhost.example.com \
-enableAdminSecurity true \
-adminUserName wasadmin \
-adminPassword yourpassword
```
创建完成后,验证 Profile 目录结构和关键配置文件。默认配置下,重要配置项包括:`server.xml`(服务器配置)、`serverindex.xml`(服务器索引)和 `security.xml`(安全管理配置)。正确理解这些配置文件的层次结构,在出现配置错误或调优性能时至关重要。
### 创建 Deployment Manager 和受管节点
对于需要集中管理或集群部署的生产环境,需要创建 Deployment Manager(DMGR)Profile 和受管节点 Profile。创建 DMGR Profile 的典型命令如下:
```bash
/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create \
-profileName Dmgr01 \
-profilePath /var/wasprofiles/Dmgr01 \
-templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/management \
-cellName Cell01 \
-nodeName dmgrNode01 \
-hostName myhost.example.com \
-enableAdminSecurity true \
-adminUserName wasadmin \
-adminPassword yourpassword
```
然后创建受管节点 Profile,使用 `-templatePath` 参数指定为 `managed` 模板,并在创建后将其联合(Federate)到 DMGR 管理的 Cell 中。合理规划 Cell 内节点的拓扑结构,是后续实现应用高可用和负载均衡的基础。
### Profile 管理常用命令
Profile 管理命令集是日常运维的核心工具。常用操作包括:
```bash
# 列出所有 Profile
manageprofiles.sh -listProfiles
# 删除 Profile
manageprofiles.sh -delete -profileName AppSrv01
# 获取 Profile 详细信息
manageprofiles.sh -getInfo -profileName AppSrv01
# 启动 Profile 对应的服务器
startServer.sh server1 -profileName AppSrv01
```
这些命令的回显信息中,要注意区分配置文件路径与实际运行时路径的差异,避免因路径错误导致执行失败。
## 服务器启动与验证
### 启动服务器
以 wasadmin 用户执行以下命令启动独立服务器:
```bash
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1
```
启动过程会输出一系列日志信息,最后提示“Server server1 open for e-business”,表示启动成功。同时,服务器运行日志 `SystemOut.log` 和 `SystemErr.log` 位于 Profile 目录下的 `logs/server1/` 子目录中,这些日志文件是日常监控和故障排查的第一手资料。
### 访问管理控制台
打开 Web 浏览器,访问 `http://myhost.example.com:9060/ibm/console`,输入创建 Profile 时设置的管理员用户名和密码,即可进入管理控制台。管理控制台是 WebSphere 的核心管理界面,提供配置管理、应用部署、性能监控和日志查看等丰富功能。初次登录时,控制台会显示欢迎界面,引导用户了解各项功能区域和常用操作向导。
### 常见启动问题排查
启动失败时,首先检查服务器日志。常见的启动失败原因包括:端口被占用,需检查 9060(管理控制台)和 9080(应用程序 HTTP)端口;内存不足,JVM 堆设置过小,需调整 `server.xml` 中的 `initialHeapSize` 和 `maximumHeapSize`;权限问题,需确保 Profile 目录属主与运行用户一致;配置文件语法错误,可通过 `validateConfigFiles.sh` 工具快速检查。
## 基础安全配置
### 启用安全管理
WebSphere 安全管理默认需要显式开启。通过管理控制台完成基础安全配置的路径为:**Security → Global security**。在此页面需设置以下关键项:
- **Administrative security**:启用管理安全,控制对管理控制台和命令行管理接口的访问。
- **Application security**:启用应用安全,控制对业务应用的访问。
- **User account repository**:选择注册用户库,可选择本地文件库、LDAP 或自定义注册表。
- **Available realm definitions**:查看可用的安全域定义,了解安全域的作用范围,避免在生产环境中误用默认的独立安全域。
安全配置修改后需要保存并同步到所有节点,然后重启服务器才能生效。
### SSL 证书配置
WebSphere 默认使用自签名证书启用 SSL 加密。生产环境中,建议将自签名证书替换为企业 CA 签发的正式证书,以建立信任链。可通过管理控制台证书管理功能,或使用 `ikeyman.sh` 工具完成证书的生成、导入和替换操作。替换证书后需要重启相关服务器,确保所有 JVM 信任新证书。
### 安全加固建议
生产环境还应执行以下加固措施:修改默认端口;禁用不必要的管理服务(如 RMI 管理通道);启用审计日志;设置密码策略和会话超时;限制管理控制台的访问来源 IP。定期关注 IBM 安全公告并及时应用安全补丁,是保障 WAS 安全性的持续任务。
## 应用部署示例
### 手动部署
通过管理控制台部署 Web 应用的路径为:**Applications → New Application**。上传 EAR/WAR 包后,需要完成安装步骤:选择目标服务器或集群;配置上下文根路径;绑定数据源和 JMS 资源(如有需要);映射虚拟主机和模块。部署完成后需保存配置并启动应用。
### 命令行部署
自动化和标准化的部署流程推荐使用命令行方式。使用 `wsadmin`(WebSphere 管理脚本执行环境)可以完成更复杂的部署任务:
```bash
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/wsadmin.sh \
-lang jython \
-username wasadmin \
-password yourpassword \
-c "AdminApp.install('/path/to/MyApp.ear', '[-contextroot myapp]')"
```
使用 `wsadmin` 时,脚本语言的正确选择和导入是常见问题。Jython 语法相对于 Jacl 而言更接近 Python,可读性和可维护性更好,是当前推荐的脚本语言。此命令执行后,需要调用 `AdminConfig.save()` 保存配置,并调用 `AdminControl.startApplication('MyApp')` 启动应用。
### 虚拟主机配置
上下文根与虚拟主机(Virtual Host)的映射规则直接影响应用的 URL 访问路径。不正确的虚拟主机配置是部署后无法访问应用的常见原因。部署应用后,需在虚拟主机中定义主机别名(Host Alias),即允许的域名和端口组合。默认虚拟主机 `default_host` 包含 localhost 和本机主机名的 9080 端口别名,如应用需通过其他域名或端口访问,必须手动添加别名。
## 性能调优与监控
### JVM 参数调整
在高并发场景下,JVM 堆内存设置的合理性至关重要。在管理控制台 **Application servers → server1 → Java and Process Management → Process Definition → Java Virtual Machine** 路径中,可根据物理内存和应用规模调整:
- **Initial heap size**:建议设置为物理内存的 25%-40%(不超过 4 GB)
- **Maximum heap size**:建议为物理内存的 50%-75%(不超过 16 GB)
- **Generic JVM arguments**:常用参数如 `-Xgcpolicy:gencon`(IBM J9)、`-XX:+UseG1GC`(HotSpot)、`-Xverbosegclog`(GC 日志输出)
注意调整后需要重启服务器,并使用监控工具确认性能得到有效改善,观察 GC 日志防止频繁 Full GC。
### Web 容器线程池调整
Web 容器线程池大小直接影响并发响应能力。合理配置线程池大小,能有效避免超线程调度开销过大的问题。默认值通常为 50,在并发请求较高时可适当增大至 100-200,但受限于系统 CPU 核心数和每个请求的耗时。配置路径为 **Application servers → server1 → Web Container Settings → Web Container → Thread Pool**。
### 使用监控工具
WebSphere 提供多种监控手段,包括:管理控制台中的性能监控模块(PMI);`wsadmin` 命令行监控(如 `AdminControl.getAttribute` 获取运行时指标);IBM Performance Tuning Toolkit(图形化性能分析工具);以及常见的第三方监控工具(如 Prometheus 可通过 JMX Exporter 接入)。定期分析 GC 日志、线程转储(Thread Dump)和堆转储(Heap Dump)是诊断性能瓶颈的主要方法,IBM 提供 Thread Analyzer 和 Heap Analyzer 等专用工具辅助分析。
## 常见问题与解决策略
### 端口冲突
端口冲突是最常见的安装和启动问题。遇到此问题时,可通过 `netstat -an | grep ` 快速定位占用进程,重点检查 9060、9080、9043、9443 等默认端口。解决方法是修改 `server.xml` 或 `portdef.props` 中的端口定义,或使用独立的端口范围规划避免跨应用冲突。
### Profile 损坏
配置文件误修改或磁盘故障可能导致 Profile 损坏。此时不要惊慌,可优先尝试从最近的备份恢复配置文件。若无备份,可通过 `manageprofiles.sh -delete` 删除原 Profile 后重新创建。但注意单机重复创建 Profile 时,在新环境上缺少准确的 WAS 产品版本信息是常见坑点,创建前需确认产品版本与模板完全匹配。
### 日志文件增长过快
生产环境中,系统应用程序日志和 SystemOut.log 可能迅速增长。需定期检查 `logs/` 目录,可通过配置日志轮转策略限制单文件大小和保留天数,建议在 `SystemOut` 和 `SystemErr` 的配置中启用按大小或时间轮转。在提高日志级别(如设置为 FINE 或 FINEST)进行问题诊断后,务必及时恢复为 INFO 级别,避免日志量过大影响系统性能。
## 总结
本文系统阐述了在 UNIX 和 Linux 平台安装配置 WebSphere Application Server 的完整流程。从系统准备、安装步骤、Profile 创建到安全配置、应用部署和性能调优,每个环节都是构建稳定 WebSphere 运行环境的关键。通过掌握这些核心操作技能,运维人员能够高效完成 WebSphere 环境的搭建和日常维护。
进一步学习建议:深入研究 **WebSphere Application Server V8.5/9.0 管理指南**(IBM Redbooks);在实践中探索 Liberty Profile(可选)的轻量级配置方式;参加 IBM WebSphere 管理认证;阅读 IBM Developer 社区和官方文档,不断更新知识体系。
WebSphere Application Server 作为企业级 Java 应用的成熟运行平台,在 UNIX 和 Linux 上依然焕发着强大的生命力。希望本文能成为您 WebSphere 运维之路的实用指南,为您的业务系统稳定运行提供坚实保障。