漂亮的Go语言通用后台管理框架,包含计划任务、MySQL管理、Redis管理、FTP管理、SSH管理、服务器管理、Caddy配置、云存储管理等功能。
No Data
Nging支持MySQL和SQLite3数据库
Nging是一个网站服务程序,可以代替Nginx或Apache来搭建Web开发测试环境,并附带了实用的周边工具,例如:计划任务、MySQL管理、Redis管理、FTP管理、SSH管理、服务器管理等。
本软件项目不仅仅实现了一些网站服务工具,本身还是一个具有很好扩展性的通用网站后台管理系统,通过本项目,您可以很轻松的构建一个全新的网站项目,省去从头构建项目的麻烦,减少重复性劳动。
当您基于本项目来构建新软件的时候,您可以根据需要来决定是否使用本系统的网站服务工具,这取决于您是否在
main.go中导入包:
go import ( _ "github.com/admpub/nging/application/initialize/manager" )
安装Nging
1). 自动安装方式:
sudo sh -c "$(wget https://raw.githubusercontent.com/admpub/nging/master/nging-installer.sh -O -)"如果是中国境内网络,可以选择采用以下命令:
sudo sh -c "$(wget https://gitee.com/admpub/nging/raw/master/nging-installer.sh -O -)"
或
sudo wget https://raw.githubusercontent.com/admpub/nging/master/nging-installer.sh -O ./nging-installer.sh && sudo chmod +x ./ nging-installer.sh && sudo ./nging-installer.sh
nging-installer.sh 脚本支持的命令如下
命令 |
说明 |
---|
./nging-installer.sh或
./nging-installer.sh install| 安装(自动下载nging并启动为系统服务)
./nging-installer.sh upgrade或
./nging-installer.sh up| 升级
./nging-installer.sh uninstall或
./nging-installer.sh un| 卸载
2). 手动安装方式:
下载相应平台的安装包,解压缩到当前目录,进入目录执行名为“nging”的可执行程序(在Linux系统,执行之前请赋予nging可执行权限)。 例如在Linux64位系统,分别执行以下命令:
cd ./nging_linux_amd64 chmod +x ./nging ./nging
配置Nging:
打开浏览器,访问网址 http://localhost:9999/setup ,
在页面中配置数据库和管理员账号信息进行安装。
安装成功后,使用管理员账号登录。
./nging service install
./nging service start
与服务相关的命令:
命令 |
说明 |
---|
./nging service install| 安装服务
./nging service start| 启动服务
./nging service stop| 停止服务
./nging service restart| 重启服务
./nging service uninstall| 卸载服务
目前,在“系统设置”中提供了以下设置组:
系统: 目前提供了API密钥和调试模式的开关
SMTP: 配置用于发送邮件的SMTP服务器的相关设置
日志: 在这里可以设置如何保存和输出本系统所生成的日志
提供对后台用户的修改、添加和删除等操作。可以为后台用户分配相应的角色,从而对其进行权限控制
一个角色就是一个权限集合。在本系统中我们将权限分为了操作权限和指令权限。
邀请码用来邀请其他人来注册成为本系统的后台用户。您可以指定受邀人注册后所拥有的角色,从而限制其操作权限。
在这里可以查看短信验证码和邮箱验证码的发送记录以及使用时间
为了对系统命令的执行进行权限控制,可以定义某个系统命令为指令
可以在此修改自己的头像、邮箱、手机号、密码等信息
如果想要提高账号的安全性,请启用两步验证。本系统已经实现了对两步验证的完整支持。
Web服务采用caddy作为内核。
caddy 是类似于nginx或apache的网站服务软件。caddy的配置文件比nginx更加简洁易用。
Nging采用了图形化界面来配置caddy,这使得对caddy的配置变得更加的容易。
设置网站服务的一般流程为:添加分组 - 添加网站 - 启动服务
首先,我们来添加一个分组。点击左边竖向导航栏上的
网站管理展开子菜单,点击
添加分组打开创建界面,在表单录入框
组名称中输入名称后提交
然后,我们来添加一个网站。点击左边竖向导航栏上的
网站管理展开子菜单,点击
添加网站打开创建界面,这里向我们展示了创建网站服务所要配置的一些录入框,我们现在分别来说明各个录入框的作用:
分组:如果网站特别多,需要按组进行归类,您可以在这里选择相应分组,这里我们选择第一步添加的分组
监听地址:可以是网址、域名或IP。如果不提供端口则默认为2005,如果不提供协议(比如https://)则默认为http,如果不提供IP和域名则默认为0.0.0.0,如果只想允许本地访问请设置为localhost或127.0.0.1。
网站位置:网站文件夹在服务器上的绝对路径
网站名称:网站的名字
日志文件:输入保存访问日志文件的路径
默认首页:在访问某个目录的时候,默认的首页文件。如有多个,用空格隔开。如不填写,默认为:index.html index.htm index.txt default.html default.htm default.txt
响应Header:可以对网址中的某个起始路径的访问设置响应头参数,支持添加、删除和修改Header
删除Header:在Header名称前使用减号(-)并将其值留空
HTTPS:支持手动和自动设置SSL证书。
GZIP:压缩数据,用于减少页面或静态文件的网络传输尺寸,可以通过指定扩展名的方式来对特定文件进行压缩
FastCGI:FastCGI代理用于将请求转发到FastCGI服务。尽管此指令最常见的用途是为PHP站点提供服务,但默认情况下它是通用的。支持设置多个不同的请求路径。
Proxy:反向代理功能用于将接收到的请求转发到指定的后台。通过设置多个后台地址我们能实现服务器的负载均衡。
文件服务:用于提供文件的直接访问
IP过滤:通过设置过滤规则来禁止某些IP或国家来访问我们的网站
网址重写:将请求的网址重写为其它值。常用于资源重定向、伪静态等场景
备注:记录当前网站的一些附加说明
网站状态:如果是
启用状态则表示该网站能够上线
是否重启:修改配置后,必须重启Web服务后才会生效
Web服务是默认启动的。
可以在
网站列表页面点击
重新应用配置来重新生成Caddy配置文件和重启服务。
当然,你也可以在左边的导航菜单中点击
服务器链接然后再点击展开的子菜单
服务管理,在打开的页面中点击Web服务的控制按钮来进行单纯的重启和关闭
展示服务器的操作系统、CPU、磁盘、内存、网络等信息。
在这个页面中,使用了进度条和百分比来直观的展示数据和资源的占用量。
列出占用网络端口的进程,并且支持关闭进程
执行简单的控制台命令。
用聊天对话框的方式来与机器进行简单的交互。
控制Web和FTP服务的启动和关闭
进程保活,即当执行的程序被异常关闭后自动重新启动此程序
添加配置
在左边的导航菜单中点击
服务器链接然后再点击展开的子菜单
进程值守打开列表页,点击列表右上角的
添加配置按钮,我们来添加一个配置,在配置表单中我们可以录入以下信息:
- `状态`:指定是否启用当前配置。如果启用则会自动开始值守 - `名称`:描述一下要值守的这个进程的名字 - `命令`:进程的启动命令 - `环境变量`:如果启动的程序需要一些特定的环境变量,您可以在这里进行设置。输入的格式为“`环境变量的名称`=`环境变量的值`”,比如“`NAME=Nging`”。如有多个,一行一个 - `命令参数`:其实在`命令`输入框中已经可以带参数了,但是如果参数比较多,则可以在这里添加,格式为`-c=value`,如有多个则一行一个 - `工作目录`:有的时候我们需要切换到某个目录下之后再执行程序,对于这种情况在这里输入这个目录的路径即可 - `信息日志文件`:值守的信息日志保存位置。如果不填,则输出到控制台 - `错误日志文件`:错误日志保存位置。如果不填,则输出到控制台 - `重试次数`:连续重试的次数。如果连续启动程序都失败了并且达到重试次数的限制,则退出值守 - `启动延时`:程序异常退出后,等待多长时间后再启动。格式为数字和单位字母的组合,有效的单位有:"ns", "us" (or "µs"), "ms", "s", "m", "h" 分别表示 "纳秒", "微秒", "毫秒", "秒", "分钟", "小时" - `心跳检测间隔`:也就是多久检测一次程序运行状态。默认1m,即1分钟。格式同`启动延时` - `说明`:该配置的附加说明 - `调试模式`:如果开启,则会在控制台输出调试信息
启动和关闭值守
在列表页点击“启用状态”列中的复选框可以控制值守程序的开和关
添加账号分组
对于有大量FTP账号的情况,可以通过建立分组来进行归类
添加FTP账号
要使用Nging提供的FTP功能,必须首先要创建一个FTP账号。
FTP客户端使用这里创建的账号来登录。
开关FTP服务
在左边的导航菜单中点击
服务器链接然后再点击展开的子菜单
服务管理,在打开的页面中点击FTP服务的控制按钮来进行重启和关闭
为了避免与原有FTP服务发生冲突,本系统的FTP服务默认端口为
233,可以通过修改配置文件config/config.yaml中ftp节点内的port字段值来指定其它端口。
数据采集模块提供了强大的采集功能,它包含了以下特色:
添加采集规则
在左边的导航菜单中点击
数据采集链接然后再点击展开的子菜单
新建规则,我们来添加一个新规则,在配置表单中我们可以录入以下信息:
- `规则名称`:首先您得为规则取一个名字 - `分组`:为当前规则选择一个分组 - `说明`:规则附加说明 - `判断重复`:选择一个判断重复的方式,这样可以避免重复采集相同的数据 - `入口页面网址`:在这里,您可以指定多个入口页面网址,每一个网址单独放在一行,支持使用Go语言的模板语法循环输出网址,此外,每一个网址中都支持使用`数字范围`标签,在数字范围标签中,连续的范围我们使用`-`来指定,不连续的范围使用`,`来罗列,同时支持指定步进值,且步进值与范围值之间用`:`分隔,默认步进值为1,例如:`{(`1-9,11,13-19:2`)}`。例如:http://www.admpub.com/{(1-2)}.html 会生成网址: http://www.admpub.com/1.html http://www.admpub.com/2.html
最大超时
:请求页面时的最大等待时长(秒)
间歇时间
:每个页面的随机等待的秒数范围
代理地址
:例如:http://admpub:[email protected]:8080
。支持格式protocol://user:[email protected]:port
protocol
- 支持http、https、socks5user
- 用户名(选填)password
- 密码(选填)ip
- IP地址port
- 端口页面格式
:目标页面的内容格式,支持的有HTML/JSON/Text
浏览引擎
:目前支持standard/chromedp/webdriver这三种,其中standard为普通方式,速度最快,默认为standard。chromedp和webdriver为调用chrome浏览器,速度相对较慢
页面类型
:可以选择“列表页”和“内容页”选项,请根据所采集页面的实际类型来选择
页面字符集
:比如gbk
或utf-8
。此项为选填,不填写的情况下会根据网页内容自动判断
区域规则
:指定所要采集页面上的某个区域的匹配规则。这里支持两种类型的规则:
div.container > h1
regexp:
或regexp2:
。其中regexp:
为Go语言原生正则表达式规则;regexp2:
为兼容 Perl5 和 .NET 的正则表达式规则(相关文档:https:) 规则
:此处指定以下规则
区域规则
则在该区域内进行查找然后可以点击“添加下一级页面”链接来对添加第二级页面的规则。页面的层级数量没有限制。
点击“测试”按钮可以进行采集测试,为了快速获取测试结果,每一级页面只采集一条
点击“采集”按钮进行手动采集
也可以将采集任务加入到计划任务中,进行自动定时采集
添加导出规则
定义采集数据的导出方式。如果希望在采集的时候自动将采集到的数据导入其它系统,请在这里添加导出规则。 目前支持两种导出方式:
1、导入到数据库; 2、提交到API接口(将JSON数据POST提交到API接口)
crontab的完美替代,并采用了图形化配置界面,支持记录日志、发送错误报告邮件等
这里的离线下载支持并行下载。
对于需要很长时间才能下载完成的大文件,我们只需要建立一个离线下载任务并且启动,然后就可以关闭浏览器去做其它的事情了,Nging会自动在后台帮您下载。
当你想要将局域网内的电脑暴露到外网,以便于外网的用户也能访问到您的网站服务时,这时候就需要用到内网穿透。
内网穿透支持服务端模式和客户端模式,全图形化的配置界面让配置变得非常容易。
要成功使用内网穿透功能,必须在局域网电脑上启动客户端模式,在提供外网的服务器或VPS上启动服务端模式。
SSH管理功能实现了SSH的Web客户端管理功能,您可以在Nging网页上进行SSH命令行交互操作,也可以通过Nging以SFTP方式来进行文件的上传、下载、删除和编辑
%GOROOT%/bin和
%GOPATH%/bin加入到PATH环境变量中
go get github.com/admpub/nging
%GOPATH%/src/github.com/admpub/nging/目录中启动
run_first_time.bat(linux系统启动
run_first_time.sh)
http://localhost:8080/setup,在页面中配置数据库账号和管理员账号信息进行安装
请注意,本系统的源代码基于AGPL协议发布,不管您使用本系统的完整代码还是部分代码,都请遵循AGPL协议。
如果需要更宽松的商业授权协议,请联系我购买授权。