SVR.JS 一款基于 Node.js 运行的开源可配置网络服务器,专为应对高负载而设计

使用 SVR.JS 实现可靠、安全的托管,并轻松实现扩展。SVR.JS 是一款基于 Node.js 运行的开源可配置网络服务器,专为应对高负载而设计。
功能特性
- 静态文件处理
- 静态文件服务(即使文件大小超过2GB)
- 目录列表展示服务
- 防范路径遍历攻击
- 内容范围支持(针对非HTML静态文件;自SVR.JS 3.15.1起也支持HTML文件)
- 从与SVR.JS安装目录不同的网站根目录提供服务
- 安全性
- HTTPS支持
- HTTP/2支持
- 内置阻止列表
- 防范HTTP认证暴力破解攻击(自SVR.JS 3.4.8起;默认启用)
- 可隐藏服务器版本
- OCSP装订支持(自SVR.JS 3.4.9起)
- 配置与定制
- 通过config.json文件进行配置
- 通过服务器端JavaScript和插件实现功能扩展
- 能够提供自定义的错误页面
- URL重写引擎
- 由Node.js驱动的事件驱动架构以及集群功能
- 压缩与内容分发
- Brotli、gzip和Deflate HTTP压缩(自SVR.JS 3.4.11起支持Brotli)
- SNI(服务器名称指示)支持
- ETag支持(自SVR.JS 3.6.1起)
- 反向代理功能(需要SVR.JS的reverse - proxy - mod插件)
- 正向代理功能(需要SVR.JS的forward - proxy - mod插件)
- 认证与访问控制
- HTTP基本认证
- 网关接口
- CGI(通用网关接口)支持(需要RedBrick插件)
- SCGI(简单通用网关接口)支持(需要OrangeCircle插件)
- JSGI(JavaScript网关接口)支持(需要YellowSquare插件)
- PHP支持(使用RedBrick插件的PHP - CGI或使用GreenRhombus插件的PHP - FPM)
- 其他功能
- 日志记录
- 能够显示最初发起请求的IP地址(来自反向代理;通过X - Forwarded - For头信息)
安装方法
- 使用适用于GNU/Linux的SVR.JS安装程序(2024年4月5日及之后制作的安装包) SVR.JS主页提供了安装命令。首先,点击“GNU/Linux”按钮,然后将该标签页下方的命令复制到终端中。命令大致如下:sudo bash -c ”$(curl -fsSL https://downloads.svrjs.org/installer/svr.js.installer.linux.20250105.sh)” 。启动安装程序后,系统会提示您选择SVR.JS的安装类型。选择类型后,SVR.JS安装程序将安装Node.js、SVR.JS并创建SVR.JS服务。安装过程中,可能会提示您安装依赖项。安装完成后,服务器将在http://localhost启动。
文件结构如下: - /usr/lib/svrjs - SVR.JS安装目录 - /var/log/svrjs - SVR.JS日志目录 - /var/www/svrjs - SVR.JS网站根目录 - /etc/svrjs - config.json - SVR.JS配置文件(SVR.JS的config.json)
SVR.JS安装程序还会安装以下命令: - svrjs - loghighlight - SVR.JS日志高亮工具 - svrjs - logviewer - SVR.JS日志查看器 - svrpasswd - SVR.JS用户管理工具 - svrjs - updater - SVR.JS更新工具
- 使用适用于GNU/Linux的SVR.JS安装程序(2024年4月5日之前制作的安装包) SVR.JS现在有一个全新的适用于GNU/Linux的安装程序。首先,下载SVR.JS安装程序,然后解压SVR.JS安装程序的zip压缩包。解压安装程序后,下载SVR.JS的zip压缩包(非安装程序),将其复制到安装程序目录并重命名为“svrjs.zip”。然后使用sudo bash installer.sh运行SVR.JS安装程序。启动安装程序后,系统会提示您选择操作系统类型(GNU/Linux发行版类型)。选择类型后,SVR.JS安装程序将安装Node.js、SVR.JS并创建SVR.JS服务。安装过程中,可能会提示您安装依赖项。安装完成后,重启服务器操作系统,或者输入systemctl start svrjs 或 /etc/init.d/svrjs start来启动SVR.JS,从而在http://localhost获得一个Web服务器。
文件结构如下: - /usr/lib/svrjs - SVR.JS安装目录 - /var/log/svrjs - SVR.JS日志目录 - /var/www/svrjs - SVR.JS网站根目录 - /etc/svrjs - config.json - SVR.JS配置文件(SVR.JS的config.json)
SVR.JS安装程序还会安装以下命令: - svrjs - loghighlight - SVR.JS日志高亮工具 - svrjs - logviewer - SVR.JS日志查看器 - svrpasswd - SVR.JS用户管理工具
- 使用适用于Windows Server的SVR.JS安装程序 SVR.JS主页提供了安装命令。首先,点击“Windows Server”按钮,然后将该标签页下方的命令复制到命令提示符中。命令大致如下:powershell -c “irm https://downloads.svrjs.org/installer/svr.js.installer.windows.20250105.ps1 | iex” 。启动安装程序后,系统会提示您选择SVR.JS的安装类型。选择类型后,SVR.JS安装程序将安装Node.js、SVR.JS并创建SVR.JS服务。安装过程中,可能会提示您安装依赖项。安装完成后,服务器将在http://localhost启动。
文件结构如下: - %SystemDrive%\svrjs\svrjs - SVR.JS安装目录 - %SystemDrive%\svrjs\wwwroot - SVR.JS网站根目录
- 使用create - svrjs - server工具
要使用create - svrjs - server安装SVR.JS,首先使用npm install -g svrjs安装该工具。然后创建一个将包含SVR.JS的目录。将工作目录切换到新目录,然后运行以下命令之一:
- create - svrjs - server lts - 最新的SVR.JS长期支持版本
- create - svrjs - server latest - 最新的SVR.JS版本
- create - svrjs - server 3.6.1 - SVR.JS 3.6.1版本(将3.6.1替换为您想要的版本)
如果您使用的是低于2.1.2版本的Deno,创建svr.cjs文件并包含以下内容:
require("./svr.js");
对logviewer.cjs、loghighlight.cjs和svrpasswd.cjs文件重复此过程,将svr.js替换为相应的带.js扩展名的脚本名称。
将SVR.JS下载并安装到工作目录后,如果是SVR.JS 3.x版本,运行node svr.js;如果是更早版本,运行node svr_new.js;如果您使用的是Bun而不是Node.js,则运行bun run svr.js;如果您使用的是2.1.2或更高版本的Deno,则运行deno run -A —unstable - delect - cjs svr.js;如果您使用的是更低版本的Deno,则运行deno run -A svr.cjs。
然后您将看到类似以下的消息:
解压模块...
删除SVR.JS存根...
解压SVR.JS...
重新启动SVR.JS以获取服务器界面。
再次运行此命令后,您将在http://localhost获得一个Web服务器。
-
使用Docker 要通过Docker安装SVR.JS,首先使用docker pull svrjs/svrjs命令拉取镜像,如果您希望安装SVR.JS的长期支持版本,则使用docker pull svrjs/svrjs:lts命令。然后使用docker run —name mysvrjs -d -p 80:80 —restart=always svrjs/svrjs命令创建并启动Docker容器(将mysvrjs替换为所需的Docker容器名称)。文件结构与通过SVR.JS安装程序安装时相同。安装完成后,服务器将在http://localhost启动。
-
手动安装 要手动安装SVR.JS,首先解压从SVR.JS下载页面下载的SVR.JS zip压缩包。然后将工作目录更改为包含SVR.JS脚本存根的目录。
如果您使用的是低于2.1.2版本的Deno,创建svr.cjs文件并包含以下内容:
require("./svr.js");
对logviewer.cjs、loghighlight.cjs和svrpasswd.cjs文件重复此过程,将svr.js替换为相应的带.js扩展名的脚本名称。
如果是SVR.JS 3.x版本,运行node svr.js;如果是更早版本,运行node svr_new.js;如果您使用的是Bun而不是Node.js,则运行bun run svr.js;如果您使用的是2.1.2或更高版本的Deno,则运行deno run -A —unstable - delect - cjs svr.js;如果您使用的是更低版本的Deno,则运行deno run -A svr.cjs。
然后您将看到类似以下的消息:
Decompressing modules...
Deleting SVR.JS stub...
Decompressing SVR.JS...
Restart SVR.JS to get server interface.
再次运行此命令后,您将在http://localhost获得一个Web服务器,界面如下:
安装后
当您访问localhost时,页面将如下所示:
如果您看到此页面,则表明SVR.JS安装成功。现在,您可以用自定义页面替换默认的服务器页面(index.html、tests.html、licenses、serverSideScript.js),并删除默认模块!如果您没有看到此页面,则说明安装SVR.JS时出现了问题。