我试图通过使用命令在Apache2服务器上安装Passenger(mod_rails) 1. gem install passenger 2. passenger-install-apache2-module 乘客得到安装,我将下面的行添加到我的configuration文件 LoadModule passenger_module /home/ec2-user/.rvm/gems/ruby-1.9.2-p290/gems/pass enger-3.0.11 / ext / apache2 / mod_passenger.so PassengerRoot /home/ec2-user/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11 PassengerRuby /home/ec2-user/.rvm/wrappers/ruby-1.9.2-p290/ruby 一旦我完成了所有这些步骤,我开始访问Apache2服务器 。 我得到以下乘客错误: [错误] ***乘客无法初始化,因为这个错误:无法启动Phusion乘客看门狗,因为它的可执行文件(/ usr / lib / phusion-passenger / agents / PassengerWatchdog)不存在。 这可能意味着您的Phusion Passenger安装被破坏或不完整,或者您的“PassengerRoot”指令被设置为错误的值。 请停止使用Phusion Passenger,或者修复您的“PassengerRoot”指令,以适用者为准。 得到这个错误之后,我再次用这些步骤re-installed Passenger ,但是这个问题仍然是一样的。 感谢您解决此问题的帮助。
我使用Passenger + Nginx来运行Rails应用程序。 如果我使用“rails_env开发” 该应用程序工作正常。 但是,如果我运行在生产模式,我得到“我们很抱歉,但出了问题”。 我没有运行db:生产迁移,我可以正常访问数据库。 奇怪的是,我没有得到任何日志(nginx和rails一个新的条目),我确保nginx用户可以写在他们身上。 如果我运行轨道控制台生产,它工作正常: # rails console production Loading production environment (Rails 3.2.0) 1.9.3-p125 :001 > 任何可能发生的想法? 我还应该检查什么? – – 编辑 – – 在@BenLeebuild议将passenger_debug_log_file添加到nginx.conf之后,我开始为开发和生产获取这个错误: # /etc/init.d/nginx restart nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok nginx: [alert] Unable to start the Phusion Passenger watchdog: it seems to have crashed during […]
我们在许多应用程序服务器上安装了3个Ruby on Rails应用程序(A,B和C)。 我们的前端是HAProxy,后端是Apache + Phusion Passenger。 最初我们在每个应用程序服务器上都安装了3个Rails应用程序,但是这种设置很慢,因为HAProxy“不知道”给定的Rails应用程序在给定的支持服务器上是否“热”。 每个乘客实例都configuration为运行多达8个Rails应用程序实例。 考虑以下情况(简化): 8个同时请求应用程序A进来,HAProxy将所有这些请求都分配给第一个应用程序服务器,因为其他请求与其他请求“非常繁忙”。 乘客在此服务器上启动应用程序A的8个实例。 另一个请求来自应用程序B,它也被分派到第一个应用程序服务器,因为其他应用程序服务器仍然太忙。 现在,乘客必须closures应用程序A的一个实例并创build应用程序B的一个实例。 在每分钟请求的TON大的情况下,所有3个Rails应用程序在每个应用程序服务器上经常启动和停止, 这是很慢的 。 在完美的世界应用程序启动一次,处理大量的请求,而不必closures和重新启动。 这就是为什么我们必须在3个Rails应用程序之间划分应用程序服务器: 应用程序A在13台服务器上运行 应用程序B在5台服务器上运行 App C运行在2台服务器上。 问题是:是否有一个负载均衡器软件“知道”后端,知道并使用以下信息来平衡负载: 每个后端服务器当前每个应用程序有多less个活动/热点实例? 目前有多less个实例正在处理请求? 目前每分钟/小时给定应用程序的平均请求数是多less? 是否需要“减less”一个申请,并“增加”另一个申请? 我们的想法是安装所有应用程序的“同类”(相同)应用程序服务器的数量,以便我们可以添加新的服务器来增加所有应用程序的总体容量,但给定应用程序的容量取决于“非常聪明“的负载平衡器,可以控制每个应用程序的容量,而不必经常启动和停止应用程序。
我正在写一个厨师食谱来安装nginx和Phusion Passenger等。 简短的总结是,我的运行列表上的食谱没有按照我预期的顺序执行,这导致apt套件安装失败,我不知道如何解决。 整个序列有点复杂,我会尽我所能保持基本的细节。 我有我自己的配方, lr-web用于定制Web服务器到我想要的状态。其中一个动作是对nginx.conf进行更改。 我还有一个angular色来编排总体configuration,其运行列表是: "run_list":[ "recipe[apt]", "recipe[nginx]", "recipe[passenger]", "recipe[lr-web]" ] 而且, lr-web配方在其metadata.rb列出了passenger和nginx作为依赖关系。 apt和nginx食谱是标准的OpsCode。 但是我写了自己的passenger配方,因为OpsCode使用rubygems来安装乘客,但是这个版本不再支持。 遵循modrails.com的build议,通过apt来安装,我的passenger食谱中有以下步骤: cookbook_file "/etc/apt/sources.list.d/passenger.list" do source "passenger.list" mode 600 action :create_if_missing end bash "apt-get-update" do user "root" code <<-EOF apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 561F9B9CAC40B2F7 apt-get install apt-transport-https ca-certificates apt-get update EOF end apt_package "nginx-extras" do action :install end […]
我在/etc/apache2/httpd.conf有以下内容: Include /private/etc/apache2/passenger_pane_vhosts/*.conf 我在/etc/apache2/passenger_pane_vhosts/my_site.conf有以下内容: LoadModule auth_cas_module /usr/libexec/apache2/mod_auth_cas.so CASCookiePath /tmp/mod_auth_cas/ CASVersion 2 CASDebug on CASValidateServer off CASAllowWildcardCert on CASTimeout 86400 CASIdleTimeout 7200 CASLoginURL https://cas.mycompany.com/cas/login CASValidateURL https://cas.mycompany.com/cas/serviceValidate CASCookieDomain hattip-dev.mitre.org LogLevel debug <VirtualHost *:80> LogLevel debug ServerName hattip.local DocumentRoot "/path/to/rails_app/public" RailsEnv development <Location /> AuthType CAS AuthName "MyCompany CAS" CASAuthNHeader MOD_AUTH_CAS_USER require valid-user </Location> <directory "/path/to/rails_app/public"> Order allow,deny […]
自上次Fusion Passenger更新以来,我所有的Sinatra应用程序都停止了以下env的工作:Apache(2.4.17),Phusion Passenger(5.0.21)。 在更新乘客中间件之前,一切都按预期工作。 问题是,当我请求虚拟主机的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> Config.ru # encoding: UTF-8 require 'rubygems' require 'sinatra' require File.expand_path '../start.rb', __FILE__ run Sinatra::Application 请求Sinatra应用程序的根(/)时,Apache日志错误: [Mon Oct 26 22:10:30.728795 2015] [autoindex:error] […]
我们在轨道上使用ruby开发了一个站点。 它有过 网站 移动应用程序的Web服务 pipe理面板来pipe理数据。 我们开始使用WordPress来pipe理网站内容。 我们已经完成了发展,现在必须搬到生产。 这是wordpress在/ wordpress URI下工作的当前虚拟主机代码。 <Location /wordpress> PassengerEnabled off <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule> </Location> 我想让phusion乘客为/ admin和/ api URIs工作。 和/去wordpress。 我们可以根据URI更改文档根吗? 或者其他更好的解决scheme?
我有一个Nginx和Passenger的设置,certificate是有问题的。 在相对较低的负载下,服务器似乎得到了备份,并开始搅动结果,如error.log: connect() to unix:/passenger_helper_server failed (11: Resource temporarily unavailable) while connecting to upstream 我的乘客设置是: passenger_min_instances 2; passenger_pool_idle_time 1200; passenger_max_pool_size 20; 我已经做了一些挖掘,看起来像CPU挂钩。 内存使用情况看起来很好,passenger_memory_stats显示最多使用700MB左右,但CPU接近100%。 这足以造成这种types的错误? 我应该把游泳池的尺寸缩小一些吗? 是否有其他configuration设置我应该看? 任何帮助赞赏 其他相关信息: Amazon EC2小实例 Ubuntu 10.10 Nginx(最新稳定版) 乘客(最新的稳定) Rails 3.0.4
我使用的是Nginx 0.7.64,Passenger 2.2.9,Rails 2.3.5。 我有我的页面caching目录设置为/公共/caching,我希望能够提供caching页面时,通过HTTP请求,但总是击中Rails应用程序通过HTTPS请求时。 我的configuration大部分是这样的: server { listen 80; server_name website.com www.website.com; proxy_set_header X-Forwarded-Proto http; root /home/deploy/website/current/public; passenger_enabled on; if (-f $document_root/cache/$request_filename.html) { rewrite (.*) $document_root/cache/$1.html break; } } server { listen 443; server_name website.com www.website.com; root /home/deploy/website/current/public; passenger_enabled on; proxy_set_header X-Forwarded-Proto https; ssl on; ssl_certificate /home/deploy/website/shared/ssl/www.website.com.combined.crt; ssl_certificate_key /home/deploy/website/shared/ssl/www.website.com.key; } 我预计,当我请求website.com/about时,我应该被提供/public/cache/about.html,但是我打了Rails服务器(拖尾日志显示它)。 思考我可能有一个不恰当的斜线(在大多数例子中没有看到$document_root ),我也尝试了以下所有的变化,没有一个工作: if […]
我是一名iOS开发人员,所以我对Apache和RoR的经验很less,而且这是我第一次尝试使用Mac OS X作为服务器。 http://rubyonrails.org/deploybuild议使用Apache的Phusion Passenger(mod_rails) 。 所以这就是我想要完成的,但是我已经走到了尽头。 这就是我所做的: 我启用了Apache(设置中的checkbox),并将浏览器指向本地主机给我的文本“它的工作!”。 我也可以通过我的dyndns来访问它。 我运行以下命令来安装乘客: sudo gem install passenger passenger-install-apache2-module 我在/etc/apache2/httpd.conf添加了以下几行: LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 然后我将以下内容添加到/etc/apache2/extra/httpd-vhosts.conf : <VirtualHost *:80> ServerName my.dyndns.org DocumentRoot /Users/Shared/rails/project/public # <– be sure to point to 'public'! <Directory /Users/Shared/rails/project/public> AllowOverride all # <– relax Apache security settings Options -MultiViews # <– MultiViews […]