gpt4 book ai didi

ruby - Webrick 使用虚拟主机的简单 Ruby "Hello, World"程序

转载 作者:行者123 更新时间:2023-12-01 05:25:28 28 4
gpt4 key购买 nike

我在互联网上搜索了一个用 Ruby 编写的 Webrick 的“Hello, World”类型的程序,但找不到任何有效的程序。我找到了 this guide on SO但我终究无法让它发挥作用。

咨询Ruby Documentation for Webrick引导我找到一些代码片段,让我朝着正确的方向前进。没有简单易懂的教程,所以我想在 SO 上添加我的答案。

我使用的是没有 Apache 或 Nginx 的 Ubuntu 14.04,并且希望我的服务器成为虚拟主机。默认情况下,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 使用虚拟主机的简单 Ruby "Hello, World"程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com