上一篇
was的虚拟主机的配置文件
- 虚拟主机
- 2025-08-07
- 4
WAS虚拟主机配置主文件为
hosts
,位于安装根目录,通过“元素定义各站点域名、文档根目录及访问控制规则
核心概念
WAS(WebSphere Application Server)通过 server.xml
文件定义虚拟主机(Virtual Host),用于实现多站点托管、负载均衡及安全策略隔离,每个虚拟主机对应一组独立的资源映射规则。
配置文件定位与编辑方式
方法 | 说明 | 适用场景 |
---|---|---|
管理控制台 | 图形化界面 → 服务器 → 虚拟主机 |
快速入门/简单配置 |
直接编辑XML | 修改 <profile_root>/config/cells/<cell_name>/nodes/<node_name>/server.xml |
复杂场景/批量部署 |
️ 修改前务必备份原始文件!
关键配置项详解
以下为 <VirtualHost>
元素的核心属性及子元素:
属性/元素 | 作用 | 必填性 | 默认值 | 备注 |
---|---|---|---|---|
name |
虚拟主机别名(需与DNS记录一致) | 唯一标识符,不可重复 | ||
hostNameAliasList |
允许访问该主机的其他域名(逗号分隔) | 空 | 支持通配符(如 .example.com ) |
|
documentRoot |
网站根目录路径 | 物理路径需提前创建并授权 | ||
directoryIndexing |
是否生成目录列表(true /false ) |
false |
生产环境建议禁用以防敏感信息泄露 | |
defaultWelcomeFile |
默认欢迎页名称(如 index.html , index.jsp ) |
index.html |
可并列多个文件(按顺序匹配) | |
errorPageURI |
自定义错误页路径(如 /errors/404.html ) |
需配合 errorCode 属性指定HTTP状态码 |
||
sslRef |
SSL配置引用(关联预定义的SSL证书) | 启用HTTPS时必须填写 | ||
trustRange |
客户端证书信任链范围(仅影响双向认证场景) | 高级安全场景使用 |
典型配置示例
<!-server.xml 片段 --> <VirtualHost name="www.site1.com" hostNameAliasList="m.site1.com,test.site1.com"> <Directory name="/opt/webapps/site1" /> <DirectoryContext root="/" documentRoot="/opt/webapps/site1/public" /> <WelcomeFileList>index.html,index.jsp</WelcomeFileList> <ErrorPage errorCode="404" location="/errors/notfound.html" /> <SSLRef ref="mySSLSettings" /> </VirtualHost>
生效与验证
- 保存配置:若通过管理控制台修改,点击
保存
;若手动编辑XML,需同步至主配置库。 - 重启服务:执行
wsadmin.sh -r NodeName -u admin -p password -syncConfig
或重启节点。 - 测试访问:使用浏览器访问
http://www.site1.com
,观察日志确认请求路由至正确目录。
相关问题与解答
Q1: 为什么我的新虚拟主机配置不生效?
A: 常见原因包括:
- 未重启服务器或同步配置;
-
documentRoot
路径不存在或权限不足; - 防火墙/安全组拦截了目标端口;
- DNS解析未指向当前WAS实例的IP地址。
排查步骤:检查日志文件(SystemOut.log
)、确认路径权限、验证DNS解析。
Q2: 如何让多个虚拟主机共用同一套SSL证书?
A: 在 server.xml
中为所有虚拟主机引用相同的 sslRef
,
<SSL id="sharedCert" keystoreRef="myKeyStore" ... /> <VirtualHost name="siteA.com" sslRef="sharedCert" /> <VirtualHost name="siteB.com" sslRef="sharedCert" />
确保 myKeyStore
已导入合法的SAN(Subject Alternative Name)证书,覆盖所有