安装部署
您可以下载所需的 JOYZL Server 发布安装包,有用于手动部署的压缩包,也有对应操作系统的安装文件包。 无论那种形式其最终安装部署结果都相同,安装包不过是把手动部署过程自动化而已。 JOYZL Server 手动部署极其简单,根据您的应用需求通常只有两三个步骤。
手动部署
将下载的程序压缩包解压到你期望的目录, Linux 建议 /etc/joyzl-server,Windows 建议 C:\Program Files\joyzl-server,当然也可以将程序布置到你您期望的任何位置。 文件解压完成后,进入程序目录,Linux 系统执行 server.sh,Windows 系统执行 server.cmd,服务程序即开始运行。 默认的HTTP服务监听80端口,通过浏览器输入服务器地址,您能看见默认页面。
自动启动
通常服务端程序需要随操作系统自动启动,因此需要配置为系统服务; 进入程序目录,Linux 执行 service.sh ,Windows 执行 service.cmd 即可自动注册系统服务。 如果您要删除服务,再次执行 service.sh 或 service.cmd 并附加 delete 参数将删除系统服务。
自动安装
如果您下载的对应操作系统的自动安装包,你只需要执行它即可, Linux 将自动安装到 /etc/joyzl-server 位置并注册为系统服务; Windows 将自动安装到 C:\Program Files\joyzl-server 位置并注册为系统服务。
通过界面配置服务
如果服务软件已安装部署且启动运行,请通过浏览器输入服务器的URL地址, 例如:"http://192.168.8.6",其中IP地址替换为服务器实际地址, 你将看到默认的页面,其中有"JOYZL Server"字样,此证明服务程序已正常运行。
服务软件已内置默认的前端管理配置工具,可通过 "http://192.168.8.6/manage" 进入; 你需要提供默认的管理账户(登录名和密码均为"manager")以登录管理端,登录成功之后将进入服务配置界面如下所示。

通过管理配置工具,你可以添加主服务,每个主服务对应一个监听的端口; 主服务中可添加多个虚拟主机,虚拟主机至少关联一个域名,也可关联多个域名; 主服务和虚拟主机下可配置多个服务程序,每种服务程序提供特定的服务。
所有配置设置好后,点击右上角"应用"按钮,将弹出确认界面以确认是否将当前配置上载并应用到服务端; 如果确认上载并应用配置,当前配置的所有服务参数将上传到服务端并立即生效,服务端会根据新的配置 更改所有服务项;您无须重启服务程序或服务器,服务端会自动完成所有事情并保存新的配置。
配置文件
大部分情况下无须手动调整配置文件,但是不能排除特定情况下的维护需求。 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/"
}
]