配置文件
大部分情况下无须手动调整配置文件,但是不能排除特定情况下的维护需求。 JOYZL Server 默认采用 JSON 5 格式组织配置文件内容, 如果服务程序运行在字节序列配置文件模式下,那么无法手动调整配置文件, 只能通过管理维护客户端工具才能打开配置文件。
如何确定服务程序采用的配置文件格式,配置文件默认位于服务程序目录中, 默认文件名为"servers.json", 如果配置文件的扩展名为".json"那么配置文件是基于 JSON 5 组织的文件内容, 反之则是字节序列格式。字节序列配置文件主要用于需要隐藏配置细节的情况, 并且必须通过身份验证才能读取并调整配置。
以下是配置文件参数组织结构,以 JSON 5 格式示例。
[
// Servers
// 监听服务集
// 可配置多项监听服务,端口不能相同
{
// 监听地址,缺省监听所有地址
ip: null,
// 监听端口
port: 80,
// 服务类型,可选:HTTP、HTTPS
type: "HTTP",
// 服务管理名称
name: "default",
// 连接等待队列
backlog: 512,
// 服务程序集
// 可配置多项服务程序
servlets: [
{
// WEBDAV 服务程序
type: "WEBDAV",
// 请求路径
path: "/webdav/*",
// 服务程序参数
parameters: {
// 内容目录位置
content: "/var/www/webdav"
},
// 附加响应标头集
// 每次响应中将添加这些标头
headers: {}
},
{
// 请求重定向
type: "LOCATION",
// 请求路径
path: "/webdav",
// 服务程序参数
parameters: {
// 重定向路径
location: "/webdav/",
// 状态码
status: 301
},
// 附加响应标头集
// 每次响应中将添加这些标头
headers: {}
// 由于Windows添加或映射网络位置时会移除尾部斜杠
// 因此通常为WEBDAV指定重定向
},
{
// 资源服务程序
// 发布前端网站使用此服务程序
type: "RESOURCE",
// 请求路径, * 表示匹配所有路径
path: "*",
// 服务程序参数
parameters: {
// 文件缓存目录位置,未指定时为系统临时文件
cache: "caches",
// 内容目录位置
content: "/var/www/joyzl",
// 默认页面
defaults: ["index.html", "default.html"],
// 需要压缩的文件扩展名,GZip或Deflate压缩
compresses: [".html", ".htm", ".css", ".js", ".json", ".svg", ".xml"],
// 需要缓存的文件扩展名,在内存中缓存
caches: [".html", ".htm", ".css", ".js", ".json", ".svg", ".jpg", ".jpeg", ".png", ".gif",
".ttf", ".woff", ".woff2"],
// 错误页面所在目录,其中按 404.html 匹配错误页面
error: "/var/www/joyzl/errors",
// 是否允许列出文件,当目录的默认页面缺失时,默认不允许
browsable: false,
// 是否允许编辑文件,启用后将允许PUT和DELETE请求,默认不允许
editable: false,
// 采用比较器生成ETag,默认启用
weak: true
},
// 附加响应标头集
// 每次响应中将添加这些标头
headers: {
"X-Frame-Options": "DENY",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains",
"Content-Security-Policy": "frame-ancestors 'none';"
}
}
],
// 身份验证集
authenticates: [
{
// 需要身份验证的路径(包括子路径)
path: "/",
// 身份验证类型,可选:None、Basic、Digest、Deny
type: "None",
// 领域信息
realm: "Server manage",
// 验证算法,默认未指定由程序决定
algorithm: null,
// 需要验证的请求方法,默认所有方法须验证
methods: ["GET", "HEAD"]
}
],
// 虚拟主机集
// 可配置多项虚拟主机
hosts: [
{
// 虚拟主机管理名称
name: "JOYZL",
// 虚拟主机域名
names: ["www.joyzl.com", "www.joyzl.cn"],
// 服务程序集
servlets: [
// 与前部分配置方式类似
],
// 身份验证集
authenticates: [
// 与前部分配置方式类似
],
// 访问日志记录位置
access: "/var/www/joyzl-access/"
}],
// 访问日志记录位置
access: "access/"
}
]