Articles of ruby on rails

-rwxr-xr-x @的含义

我有一个文件与@后的权限 -rwxr-xr-x@ 1 riccardotacconi staff 215 14 Sep 14:21 Capfile 你知道它的意思吗? 我正在部署一个使用Capistrano的Rails应用程序。 Gemfile不是副本,虽然它在SVN存储库中提交。 很奇怪。

Apache mod_proxy到另一台服务器

我正在使用Apache2中的proxy_balancer将请求发送到Rails应用程序到运行应用程序的端口上的Rails服务器。 这是如何build立… Rails服务器 Mongrel运行在端口8000上,当直接访问url http:// rails_server:8000时 ,站点加载正常 该站点的Apache Server Conf文件: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName myserver.com ServerAlias application.myserver.com <Proxy balancer://application_cluster> Allow from localhost BalancerMember http://ip.to.server:8000 retry=10 </Proxy> ProxyPass / balancer://application_cluster </VirtualHost> 我遇到的问题是要http:// rails_server:8000工作正常,但要去http://application.myserver.com加载正确的内容,但显示所有的HTML文本,而不是呈现为HTML

Passenger + nginx:应用程序不能在生产模式下运行

我使用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 […]

Rails / Passenger有后端感知的负载平衡器吗?

我们在许多应用程序服务器上安装了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”一个申请,并“增加”另一个申请? 我们的想法是安装所有应用程序的“同类”(相同)应用程序服务器的数量,以便我们可以添加新的服务器来增加所有应用程序的总体容量,但给定应用程序的容量取决于“非常聪明“的负载平衡器,可以控制每个应用程序的容量,而不必经常启动和停止应用程序。

如何为虚拟主机设置mod_auth_cas?

我在/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 […]

维护/安装ruby/ruby在一般的Linux和Gentoo的轨道上

我目前正在研究Ruby / Ruby on Rails作为Python / Django的替代品。 我的主要问题是,在Linux上安装Ruby gems和/或Ruby on Rails项目时,最好的做法还是不清楚,特别是在一般的dist或Gentoo上。 在Gentoo中,开发者倾向于打包gem。 这是通过portage而不是gem安装的最佳方式。 但是我不知道这是否正确,因为你总是会缺less重要的项目和依赖关系,因此你不得不编写自己的ebuild(不是很重要)并维护它。 在这一点上,我没有看到任何更多的优势,因为一旦我写了自己的ebuild,我就必须密切关注这些软件包,因为这个软件包不会有什么不可思议的麻烦。 :-)另外,Ruby世界是一个快速移动的目标,而且并不是所有包装在dist树中的gem都是真正的速度。 另一方面,通过Bundler直接安装或者直接通过gem包pipe理器安装,看起来也不错。 如果你不小心,你可以绕过包裹经理,并且有两个竞争的经理。 例如,Ruby 1.9.4的dist更新引入了一些特定于dist的特性,并且一些gem意外中断。 然而他们为自己打包gem。 或者,如果您使用Bundler,那么对于它们的依赖关系版本,项目往往会相当严格,因此,即使有依赖关系的安全更新可用,也可能得不到它,因为项目明确指定了一个版本。 所以你必须再次手动跳入。 现在,我将非常感谢社区关于正确方式(TM)处理此类事情的意见,以及如何在生产服务器上正确维护Ruby / Ruby on Rails基础和多个项目(包括第三方项目)。 请注意,这不是关于如何部署项目/应用程序。 这是关于维护的最佳实践…

清漆configuration只caching未login的用户

我有一个由varnish + nginx向前的Ruby on Rails应用程序。 由于大多数网站的内容是静态的,除非你是一个login用户,我想在用户注销时大量使用varnish,而只是在login时caching静态资产。 当用户login时,他们的cookie中会包含cookie'user_credentials',此外,我需要跳过/ login和/ sessions上的caching,以便用户可以首先获得他们的'user_credentials'cookie 。 Rails默认不设置caching友好的caching控制头,但是当用户没有login时,我的应用程序设置了“public,s-max-age = 60”头。Nginx设置为返回'far future'expires头为所有静态资产。 我目前的configuration完全绕过了login时包括静态资产在内的所有内容的caching,并且在注销时返回cachingMISS。 我花了几个小时绕圈,这里是我目前的default.vcl director rails_director round-robin { { .backend = { .host = "xxx.xxx.xxx.xxx"; .port = "http"; .probe = { .url = "/lbcheck/lbuptest"; .timeout = 0.3 s; .window = 8; .threshold = 3; } } } } sub vcl_recv { if (req.url […]

如何启用redmine(ruby on rails)日志logging?

由于某种原因,我的RedMine安装从来没有得到任何日志文件。 Redmine是一个用Ruby on Rails编写的开源项目pipe理系统。 我是一个Ruby或Rails的新手。 已经search了维基,论坛,门票没有任何线索这个看似简单的事情。 顺便说一句,这是从这个TurnKey Linux应用程序的以前版本的升级。 我可以看到旧版本的备份文件夹中有一个日志文件,里面有大量的日志信息。 但是我的/var/www/railsapp/log/production.log只有几天前的一行,宣布创build日志。 现在,我真正的问题是开始在应用程序中发生的一些奇怪的事情,但我觉得,A)看到日志,我可能意识到这是我改变了我的configuration(虚拟机和networking设置mucking)B)将有日志在一个问题上发布给红矿团队。 同时,我甚至无法login任何东西。 是否有debugging级别设置? 韦恩,真诚

在STARTTLS:Postfix之后丢失了连接

我已经安装了Postfix + Courier服务器,并configuration了使用SMTP服务器设置的Rails应用程序。 每当Rails应用程序尝试发送电子邮件时,这就是Postfix日志中显示的内容(master.cf中设置的其他日志详细程度) Feb 22 03:57:24 alpha postfix/smtpd[1601]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits) Feb 22 03:57:24 alpha postfix/smtpd[1601]: smtp_get: EOF Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostname: localhost ~? 127.0.0.0/8 Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostaddr: 127.0.0.1 ~? 127.0.0.0/8 Feb 22 03:57:24 alpha postfix/smtpd[1601]: lost connection after STARTTLS […]

无法连接到CentOS 6.3上的Ruby on Rails开发服务器

我无法连接到我的Ruby on Rails开发服务器: 当我在不同的连接上input192.168.0.10:3000到网页浏览器时,只是超时。 我怀疑问题是我的防火墙configuration,但我试图打开一切,似乎并没有工作。 服务器在我的本地networking上,有一个静态的IP,并且configuration正确 – 我可以通过SSH进入,并可以连接到互联网进行更新。 它运行CentOS 6.3,并按照以下说明安装了rails: http : //itekblog.com/ruby-on-rails-on-centos-6-3-is-easy/ 服务器正在运行:我可以用wget localhost:3000下载“Welcome Aboard”页面 我认为它应该在所有接口上进行监听: [sandy@pops testproject4]$ rails server => Booting WEBrick => Rails 3.2.8 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2012-08-18 18:29:04] INFO WEBrick 1.3.1 [2012-08-18 18:29:04] INFO ruby 1.8.7 (2011-06-30) […]