我有一个 Sinatra 应用程序,我使用ruby app.rb
. 通过 ssh 在远程机器上部署它时,如何在后台运行它并将 stdout 和 stderr 重定向到日志文件?
在重新启动时,我想保留以前的日志,以便将较新的消息附加到现有的日志文件中,而不是截断它。
将我的 Web 应用程序作为守护程序运行的推荐方式是什么?
我试过了nohup ruby app.rb &
,但似乎缺少 stderr 并且在某些情况下日志语句似乎乱序。
自上次 Fusion Passenger 更新以来,我所有的 Sinatra 应用程序都停止在以下环境中工作:Apache (2.4.17)、Phusion Passenger (5.0.21)。在更新乘客中间件之前,一切都按预期工作。
问题是,当我请求我的 vhost的 url ( https://myapp.ch )时,apache 目录正试图进入公共目录的列表。
ODD 部分:如果请求在 Sinatra 控制器中定义的路由(即:https : //myapp.ch/infos),则启动乘客并按预期提供请求的页面。
这是虚拟主机部分:
<VirtualHost *:443>
DocumentRoot /home/user1/sinatra/app1/public
ServerName myapp.ch
<Directory /home/user1/sinatra/app1/public>
AllowOverride all
Order allow,deny
Allow from all
Options -MultiViews
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
配置文件
# encoding: UTF-8
require 'rubygems'
require 'sinatra'
require File.expand_path '../start.rb', __FILE__
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)
请求 Sinatra 应用 (/) 的根目录时出现 Apache 日志错误:
[Mon Oct 26 22:10:30.728795 2015] [autoindex:error] [pid 3535:tid 140103510914816] [client 176.127.182.162:50956] AH01276: Cannot …
Run Code Online (Sandbox Code Playgroud) 在研究 Unicorn 配置选项时,我遇到了这个片段..
GC.respond_to?(:copy_on_write_friendly=) and
GC.copy_on_write_friendly = true
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,它优化了 Unicorn 如何处理工人之间的内存分配和资源共享?
我使用 Unicorn 在带有 Ruby 1.9.3 的服务器上为我的 Sinatra 应用程序提供支持。在我的独角兽配置中包含copy_on_write_friendly设置有什么缺点吗?