这是一个简单易用的HTTP网页服务器,使用C语言和极少量的C++语言编写而成,并支持使用动态链接库的形式为程序提供插件和动态网页。
1.下载Release页面中的最新版本
2.使用以下命令来为其添加可执行权限
chmod +x webserver
3.输入./webserver
以启动服务器,首次运行会提示是否生成默认的配置文件,输入y
以同意生成,随后服务器将启动。若服务器未能成功启动,请修改默认配置文件。
(1) 提示端口绑定失败
:请检查该端口是否被其他进程占用或是否有权限使用本端口,可以尝试使用sudo ./webserver
(2) 提示诸如缺少运行库、段错误等问题请尝试方法二:编译运行
1.安装g++编译器和make,例如在debian系Linux环境下执行
sudo apt install g++ make -y
其他Linux发行版请自行查找安装
2.克隆本仓库源码到本地
3.进入源码中包含Makefile文件的目录中,输入make
命令并执行
4.将生成的文件webserver
放在合适的运行环境
5.使用方法一中的第三步及后续步骤来运行服务器
在服务器运行后可以通过在终端输入help命令以获取终端命令帮助
1.当用户的请求不包含资源名称时,会为其跳转至index.html页面
2.当用户请求的资源不存在时,将自动为其提供404.html中的文件,所以请务必创建一个404.html文件,否则将导致出错
3.对于一个连接超过1分钟未发生接收或发送操作,将会关闭此连接
该文件是服务器的配置文件
项目 | 含义 |
---|---|
MimePath | Mime文件的路径,Mime文件的作用请参考后文 |
PORT | 服务器将要使用的端口,HTTP协议默认端口为80端口 |
HomeDir | 服务器默认索引的目录,服务器将从本目录及其子目录获取网页文件 |
LogPath | 保存日志文件的目录 |
UserAgentIndexPage | 设置为不同UA提供不同的主页 |
UserAgentIndexPage示例:
该项为
{
"UserAgentIndexPage": [
{
"key":"Android",
"page":"mobile_index.html"
},
{
"key":"iPhone",
"page":"index_for_iphone"
}
]
}
时,若用户的请求中没有指示请求的文件并且该请求的UA值包含Android
字样,则会为其提供mobile_index.html
页面,若包含iPhone
字样则为其提供index_for_iphone
页面,若都不包含则提供默认的index.html
页面
该文件将指示服务器告知客户端如何为用户展示当前页面,例如当用户请求html文件时若mime指示使用text/html方式为用户显示,则该文件将在客户端以网页的形式展示,若mime指示使用text/plain,则会将该文件以纯文本(即网页源码)形式为用户展示
该文件服务器会自动生成,对于其详细格式可以参考自动生成的文件。
对于如何编写动态网页和插件,请参考EasyHttpServerSDK
1.将动态网页或插件文件放在app
目录下(该目录会在首次运行时创建),并确保其文件名以_app结尾
2.启动服务器将会自动加载app
目录中的插件
3.用户通过访问http://地址:端口/app/插件名.方法
来调用插件