一个基于webrick 的简单web服务器
2017-01-12 14:55
441 查看
使用ruby 自带的webrick 可以非常方便地实现一个web服务器。
webrick.rb 基本代码如下:
使用命令ruby webrick.rb 即可启动一个监听在8000端口的web服务器,
根目录在当前目录的子目录html里。代码中的web根目录也可以是一个绝对路径。
在web根目录中创建一个示例html文件,立马可以看到效果。比如:
上面的web 服务器在前台运行,也没有日志功能,所有输出直接打印在console上。
可以稍加润色一下,添加一些基本功能
1、简单的日志功能,
2、后台运行功能
代码如下:
新学ruby,暂未解决的问题有
1、日志存在缓存buffer,不会立即写入日志文件
2、日志文件句柄似乎没有回收
webrick.rb 基本代码如下:
#!/usr/bin/env ruby require 'webrick' ## prepare dirs FileUtils.mkdir_p('html') webroot = File.expand_path 'html' server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => webroot trap '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 ruby require '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 logfile server = 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、日志文件句柄似乎没有回收
相关文章推荐
- 基于epoll实现的一个简单web服务器
- 基于Java web服务器简单实现一个Servlet容器
- 基于Socket编程实现一个简单的Web服务器
- 一个基于AIO实现的简单web服务器
- [Tomcat服务器 --- 一个简单的基于HTTP WEB服务器]
- 分享:基于epoll实现的一个简单的web服务器
- 分享:基于epoll实现的一个简单的web服务器
- 基于postfix做一个简单的邮件服务器,你学会了吗?
- WinCE下实现一个简单WEB服务器
- 简单的基于TcpListener的Web服务器实例
- 找到一个简单构建Web服务器的绿色软件
- Tomcat是怎么炼成的?(2)一个最简单的Web服务器
- 基于tcp/ip的简单web服务器实现
- java开发的一个简单的本地web服务器
- 从无到有快速搭建一个基于Web的Mail服务器,能够实现邮件的收发
- 用java 写的一个简单的 web 服务器(适合新手练练)
- 一个简单web服务器的实现
- [How Tomcat Works]第1章 一个简单的Web服务器
- (Struts重构)构建一个简单的基于MVC模式的JavaWeb
- 第18章 一个简单Web服务器的