使用ruby 自带的webrick 可以非常方便地实现一个web服务器。

webrick.rb 基本代码如下:

#!/usr/bin/env rubyrequire 'webrick'## prepare dirs
FileUtils.mkdir_p('html')webroot = File.expand_path 'html'
server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => webroottrap 'INT' do server.shutdown end
server.start

使用命令ruby webrick.rb 即可启动一个监听在8000端口的web服务器,

根目录在当前目录的子目录html里。代码中的web根目录也可以是一个绝对路径。

在web根目录中创建一个示例html文件,立马可以看到效果。比如:

echo "hello world" > html/index.html

上面的web 服务器在前台运行,也没有日志功能,所有输出直接打印在console上。

可以稍加润色一下,添加一些基本功能

1、简单的日志功能,

2、后台运行功能

代码如下:

#!/usr/bin/env rubyrequire 'webrick'## prepare dirs
FileUtils.mkdir_p('html')
FileUtils.mkdir_p('log')## webroot
webroot = File.expand_path 'html'## access log
logfile = File.open 'log/webrick.log', 'a+'
access_log = [ [logfile, WEBrick::AccessLog::COMBINED_LOG_FORMAT], ]
log = WEBrick::Log.new logfileserver = WEBrick::HTTPServer.new(:Port => 8001,:DocumentRoot => webroot,:Logger => log,:AccessLog => access_log
)trap 'INT' do server.shutdown end## run in daemon mode
WEBrick::Daemon.start
server.start

新学ruby,暂未解决的问题有

1、日志存在缓存buffer,不会立即写入日志文件

2、日志文件句柄似乎没有回收

一个基于webrick 的简单web服务器相关推荐

  1. nodejs实践录:基于koa的简单web服务器

    背景: nodejs搭建web服务是一件十分简单的事情,支持的框架多,有关的库也多,不像嵌入式那般繁琐.本文提出一种利用koa搭建web服务的方案,适用简单的数据展示和信息查询,文后有源码地址,可直接 ...

  2. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  3. 基于Go语言的Web服务器开发

    基于Go语言的Web服务器开发 本文将介绍使用Go语言来开发一个简单的Web服务器,其中将包括文件上传和下载功能. 必备条件 Go语言环境 一个文本编辑器 网络服务器 步骤一:编写server.go文 ...

  4. Socket网络编程--简单Web服务器(6)

    本来是想实现ssl连接的,但是弄了好久都不成功,就索性不做了,等以后有能力再做了.所以这一小节就是本次的最后一节了.就简单的说几个注意点. 1.加个配置文件 使用单例模式,使用一个类,该类保存一些信息 ...

  5. 学习C++项目——一个基于C++11简单易用的轻量级网络编程框架 1

    一个基于C++11简单易用的轻量级网络编程框架 一.项目下载.导入.编译和运行   现在准备深入学习 C++ ,先肝一个项目,这个项目是<一个基于C++11简单易用的轻量级网络编程框架>, ...

  6. Poco:创建个非常简单web服务器

    C++ Poco创建个非常简单web服务器,需要先安装Poco库,配置好Poco头文件和库的路径,window和Linux下都可以编译运行,运行后在浏览器上输入网址:http://127.0.0.1: ...

  7. go语言服务器代码,Go语言开发简单web服务器

    欢迎,来自IP地址为:182.103.254.107 的朋友 Go语言由于其方便的并发通信机制以及强大的网络支持,常常被用于服务器软件的开发.本文将示例使用Go语言来开发简单的Web服务器. HTTP ...

  8. nodejs php web,nodejs实现的简单web服务器功能示例

    本文实例讲述了nodejs实现的简单web服务器功能.分享给大家供大家参考,具体如下: 前端js代码: $.ajax({ url:'http://192.168.0.114:3000',//服务器地址 ...

  9. JAVA个go哪个写web方便_Go语言实现的一个简单Web服务器

    Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务.同时使用这个包能很简单地对Web的路由,静态文件,模版 ...

最新文章

  1. SAP WM高阶之同一个货架上相同物料不同批次的库存可以有同一个SU号码?
  2. 初步学习用超图处理三维场景
  3. TF之data_format:data_format中的NHWCNCHW简介、转换的详细攻略
  4. ios推送通知之ios推送证书的申请和使用配置
  5. php怎样查看视频播放的进度条,H5中视频与音频标签和进度条如何使用
  6. python三大神器装饰器_Python2.x
  7. Tomcat9 运行startup文件,打开的窗口是乱码显示
  8. 清理Pandas DataFrame中的数据
  9. 阿里云 Debian 9.2 安装 Java Web 环境
  10. 18复变函数的积分(四)
  11. python中装饰器的作用_Python中装饰器的用法
  12. Media Player Classic - HC 源代码分析 4:核心类 (CMainFrame)(3)
  13. 下面的代码能确定参数是否为奇数吗?
  14. C语言数码管是共阴共阳程序,C语言实现共阴极数码管操作
  15. FPGA经典设计:再读正点原子SDRAM控制器
  16. matlab运行出现:Optimization terminated.
  17. Django项目详解2——动态响应的web应用
  18. windows 2003 server 企业英文版 序列号
  19. 韦东山嵌入式linux第一期_裸机实战之开发板熟悉与体验篇
  20. 华为大数据生态适配地图

热门文章

  1. (十一)java版spring cloud+spring boot+redis多租户社交电子商务平台- commonservice-sso服务搭建(一)...
  2. 系统负载LoadAverage
  3. C#未来新特性:静态委托和函数指针
  4. java B2B2C springmvc mybatis多租户电子商城系统(五):熔断监控Hystrix Dashboard和Turbine...
  5. 关于C#中Queue的线程安全问题
  6. 部署kafka集群到服务器
  7. Unix的标准I/O与重定向的若干概念解析
  8. ActiveMQ消息的延时和定时投递
  9. 完整约束三(学习笔记)
  10. PXE网络无人值守装机