JOYZL Server
中国智造 GitHub

安装部署

您可以下载所需的 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/"
	}
]