Webrick 使用虚拟主机的简单 Ruby "Hello, World" 程序
Simple Ruby "Hello, World" Program for Webrick Using Virtual Hosts
我在互联网上搜索了 Ruby 中 Webrick 的 "Hello, World" 类型程序,但找不到任何有效的程序。我找到了 this guide on SO,但我一辈子都无法让它工作。
咨询 Ruby Documentation for Webrick 让我找到了一些让我朝着正确方向前进的代码片段。没有简单易懂的教程,所以我想在 SO 上添加我的答案。
我使用的是 Ubuntu 14.04,没有 Apache 或 Nginx,我想要我的服务器作为虚拟主机。默认情况下,Webrick 不会同时响应请求,但对我来说,除了占地面积小之外,这是一个加号。我希望在没有 Rails 框架的情况下让它工作,以获得更轻的足迹。
首先,我使用 Ubuntu 包管理器安装了 Ruby。如果您使用的是 CentOS 或其他 Linux 发行版,您可以根据您的特定包管理器调整此步骤。还要确保端口 80 在您的 Web 服务器上打开。可以使用 Webrick 获得 SSL,但我此时选择不这样做。
sudo apt-get install ruby
这是我正在使用的名为 myapp.rb
的脚本。我把它放在/var/www/myapp
。理想情况下,我认为它不应该在文档根目录中。您还应该为 运行 脚本创建一个特殊的用户和组以提高安全性(我没有在此处概述这些步骤)
require 'webrick'
server = WEBrick::HTTPServer.new(:Port => 80,
:SSLEnable => false,
:DocumentRoot => '/var/www/myapp',
:ServerAlias => 'myapp.example.com')
server.mount_proc '/' do |req, res|
res.body = 'Hello, world!'
end
trap 'INT' do server.shutdown end
server.start
上面的 require
语句告诉 Ruby 在 运行 编译程序时包含 Webrick 类。脚本的第二行使用以下选项创建了一个 Webrick 实例:
- 使用端口 80
- 禁用 SSL
- 将文档根设置为
/var/www/myapp
- 将服务器别名设置为
myapp.example.com
当然,您必须配置特定域的 DNS'。 server.mount_proc
告诉 Ruby 在文档根目录下提供响应 "Hello, world"。我想你可以在那里指定一个子目录。上面的 Ruby Webrick 文档有这方面的信息。
以trap
开头的行表示可以使用Ctrl-C停止Web服务器。要启动脚本,我在 SSH 命令行中键入以下内容:
ruby myapp.rb
我在互联网上搜索了 Ruby 中 Webrick 的 "Hello, World" 类型程序,但找不到任何有效的程序。我找到了 this guide on SO,但我一辈子都无法让它工作。
咨询 Ruby Documentation for Webrick 让我找到了一些让我朝着正确方向前进的代码片段。没有简单易懂的教程,所以我想在 SO 上添加我的答案。
我使用的是 Ubuntu 14.04,没有 Apache 或 Nginx,我想要我的服务器作为虚拟主机。默认情况下,Webrick 不会同时响应请求,但对我来说,除了占地面积小之外,这是一个加号。我希望在没有 Rails 框架的情况下让它工作,以获得更轻的足迹。
首先,我使用 Ubuntu 包管理器安装了 Ruby。如果您使用的是 CentOS 或其他 Linux 发行版,您可以根据您的特定包管理器调整此步骤。还要确保端口 80 在您的 Web 服务器上打开。可以使用 Webrick 获得 SSL,但我此时选择不这样做。
sudo apt-get install ruby
这是我正在使用的名为 myapp.rb
的脚本。我把它放在/var/www/myapp
。理想情况下,我认为它不应该在文档根目录中。您还应该为 运行 脚本创建一个特殊的用户和组以提高安全性(我没有在此处概述这些步骤)
require 'webrick'
server = WEBrick::HTTPServer.new(:Port => 80,
:SSLEnable => false,
:DocumentRoot => '/var/www/myapp',
:ServerAlias => 'myapp.example.com')
server.mount_proc '/' do |req, res|
res.body = 'Hello, world!'
end
trap 'INT' do server.shutdown end
server.start
上面的 require
语句告诉 Ruby 在 运行 编译程序时包含 Webrick 类。脚本的第二行使用以下选项创建了一个 Webrick 实例:
- 使用端口 80
- 禁用 SSL
- 将文档根设置为
/var/www/myapp
- 将服务器别名设置为
myapp.example.com
当然,您必须配置特定域的 DNS'。 server.mount_proc
告诉 Ruby 在文档根目录下提供响应 "Hello, world"。我想你可以在那里指定一个子目录。上面的 Ruby Webrick 文档有这方面的信息。
以trap
开头的行表示可以使用Ctrl-C停止Web服务器。要启动脚本,我在 SSH 命令行中键入以下内容:
ruby myapp.rb