Articles of ruby on rails

每个连续的请求服务器速度较慢

应用程序堆栈(全部使用最新的稳定版本): Ubuntu的 阿帕奇 乘客 ruby Ruby on Rails 重新启动Apache(apache2ctl优雅)后,一个页面请求是相当快,大约600毫秒。 然后,对于每个请求(同一页仍然只是重新加载),页面加载时间每个请求250-500毫秒。 所以在20个要求之后,我在10秒左右加载了相同的页面。 看轨道日志和webkit检查器的加载时间,他们上升。 页面加载是简单的GET,即没有额外的数据。 任何想法可能是什么原因呢? 另外,让我知道是否应该详细说明任何事情。 第二页面载入: Rails日志摘录 Started GET "/categories" for 214.200.52.199 at Mon Oct 25 20:38:02 +0000 2010 Processing by CategoriesController#index as HTML Rendered shared/sections/_settings.html.haml (101.6ms) Rendered layouts/_header.html.haml (172.0ms) Rendered layouts/_footer.html.haml (2.8ms) Rendered categories/index.html.haml within layouts/application (319.3ms) Completed 200 OK in 339ms (Views: 320.1ms) […]

Capistrano需要root密码才能部署 – 不好

我正在使用Capistrano部署到我的VPS(Ubuntu的Linode),似乎需要我的root用户的密码才能完成部分部署。 这是不好的,因为我看到它。 (我与nginx和乘客滚动。) 我recursion地部署目录和git仓库。 我的deploy.rb文件中唯一的exception是我运行bundle install和rake db:在deploy:update_code之后进行迁移。 下面是从部署相对(我相信)到根密码请求的输出: * executing `deploy' * executing `deploy:update' ** transaction: start * executing `deploy:update_code' updating the cached checkout on all servers executing locally: "git ls-remote deploy@mydomain:~/myapp.git master" * executing "if [ -d /home/apps/myapp/shared/cached-copy ]; then cd /home/apps/myapp/shared/cached-copy && git fetch origin && git reset –hard 8ea422656949f90cc27fd17cb31d68bbaeb33c6e && git clean […]

configuration问题与nginx,乘客和Ruby on Rails的“没有这样的文件加载 – configuration/环境”

我最近得到了一个Linode,并在Debian 5上跟随了关于如何在Nginx上设置Ruby On Rails的指南。 一切似乎设置正确(没有错误或问题后,该指南)。 我已经上传了我在本地工作的Ruby应用程序,更新了nginx.conf文件指向应用程序,现在出现错误: no such file to load — config/environment 请看这个屏幕捕获错误的全部细节。 我已经尝试更改environment.rb文件的权限。 我想我错过了一些非常基本的东西。 对于什么是值得的,该网站在Mac环境本地工作。 这是我的nginx日志的一个片段。 这里是我的nginx conf文件中的网站: server { listen 80; server_name *.mydomain.com; root html/simple_cms/public; passenger_enabled on; passenger_use_global_queue on; } 我在Linux环境和Ruby开发人员都是一个完整的新手。 所以,任何意见将很好地采取和非常感谢!

部署一个小型的Rails应用程序 – build议?

我们一直在为我们的学校决赛项目制作一个小小的Ruby On Rails(ruby 1.8,rails 3.0.1)系统; 在开发过程中,我们一直在testing我们的开发机器和我们局域网上运行WEBrick的Linux服务器。 对于部署,我们已经给了一个运行Debian squeeze / sid的VPS,并且免费提供。 部署选项(换句话说:“自己搞清楚:)”)。 该网站将不会有大量的stream量,所以运行部署的WEBrick可能会工作 – 但它感觉不对,考虑到这是一个学习项目,我们希望至less半正确地做的东西。 另外, 我们需要gzip压缩 ,因为rails应用程序的一部分是一个json web服务,它将提供适量的数据 – 而据我所知,ruby服务器通常不支持这一点。 过去几天我一直在做大量的search,以调查各种选项,而且zowie有很多! 我唯一预先排除的是Apache,主要是因为我想尝试新的东西,部分原因是因为它感觉有点笨重 。 现在我正在调查cherokee + Thin ,这看起来很不错,但如果有更适合的东西,我会非常乐于提供build议。 我遇到了lighttpd,hiawata和nginx服务器,并且我看到了杂种,乘客和独angular兽ruby服务器的提及 – 这里肯定有很多可能的组合! 为了进行testing,我们目前设置了SSH隧道,并使用etc / hosts将appname.local映射到127.0.0.1 – 注册正确的域名并在防火墙中打孔将在稍后进行。 其主要含义是httpd在端口80上运行,但由于SSH隧道, Host: HTTP请求头的一部分包含隧道端口号。 为了有希望将这些文字转换成适当的文章,这里有一些问题: 当在另一个httpd“前端”后面使用Thin ruby​​服务器时,单个实例可以处理(不排队)多个并发的rails请求,还是只能在它被用作前端时才能这样做? 我应该在不同的端口上使用它们的池吗? 目前,我们正在将rails应用程序放在/ var / rails / appname ,并将/ var / rails / appname / […]

Capistrano + Nginx + Passenger = 403

我也问过在stackoverflow,但仍然没有收到任何帮助我解决这个问题的答案。 为了解决这个问题,我花了差不多一个星期的时间,而且我还没有取得任何进展。 看来这个问题很常见,但是我在网上find的解决scheme都没有为我工作。 我的一个好友实际上正在创造相同的设置,而他也有同样的问题。 经过几天的403错误,我开始使用这个教程: http : //blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server 我曾希望从头开始使用本教程将工作,但没有骰子。 无论哪种方式,如果您查看教程,您可以看到我采取了哪些步骤。 这基本上是我正在做的事情。 我在linode.com上有一个VPS账户 服务器操作系统是Ubuntu 10.04 雪豹10.6.6本地操作系统(应该不会有问题,但只是你知道)用于部署与Capistrano 我在服务器上使用RVM 。 版本是1.2.2 我之前在ruby-1.9.2-p0 [i386]上,但根据上面列出的教程,我切换到了ree-1.8.7-2010.02 [i386] 。 从命令行运行' ruby 'validation我使用的是1.8.7,输出如下: /usr/local/rvm/rubies/ree-1.8.7-2010.02/bin/ruby 乘客-v打印以下内容: Phusion Passenger版本3.0.2 运行'nginx -v'会给我一个消息,说明命令nginx找不到。 服务器肯定在那里,正在运行,我可以使用nginx来提供静态文件,但这可能与我的问题有关。 我有两个用户处理安装。 我用来安装所有东西的根目录 ,以及部署我的应用程序的用户 我的web app目录位于部署者用户的主目录中,如下所示: /home/deployer/webapps/mysite.com/public 按照Capistrano默认部署,在公用文件夹中创build一个名为current的符号链接 ,并指向/home/deployer/webapps/mysite.com/public/releases/most_current_release 我已经recursion地将部署者目录chmod到777 / opt / nginx权限: rwxr-xr-x /usr/local/rvm/gems/ree-1.8.7-2010.02/gems/passenger-3.0.2权限: rwxrwsrwx 我的nginxconfiguration文件已经经历了短暂的永恒变化,但目前看起来像这样: ================================================== ================================ worker_processes 1; events { […]

如何在FreeBSD 8上部署Rails 3?

我很喜欢FreeBSD,而且我以前只能在Mac OS和Heroku上使用ROR。 现在我已经安装了FreeBSD 8的VPS,并发现安装ror 3与mongrel正确的问题。 Google只给我提供了非常过时的指南,所以我想知道,如果你们可以给我推荐任何好的链接(或推荐)和分步指南。 非常感谢!

带有乘客设置问题的Nginx

我试图在Ubuntu 10.04(在子URI上)为Ruby on Rails应用程序提供Passenger支持来设置nginx webserver。 一切正常,直到我试图从浏览器访问服务器/应用程序。 我的nginx的安装位于/opt/nginx位置 # my nginx.conf server { listen 80; server_name www.mydomain.com; root /websites/site/public; passenger_enabled on; passenger_base_uri /site; location / { # added by default, I don't know if its supposed to be here or not root html; index index.html index.htm; } 然后我启动了服务器。 但是当我把www.mydomain.com/site放入浏览器时,我得到了404 Not Found错误。 Error.log显示这个: 2011/03/04 10:07:07 [error] 21387#0: […]

使所有的东西去https,除了在轨道,nginx,乘客一个url

嘿,我有一个Rails应用程序,我已经redirect几乎所有stream量使用https。 但是,我的应用程序中有一个特定的path,我需要通过纯http访问,比如somedomain.com/special 。 我想知道这是甚至可能的,因为我的Rails应用程序似乎在https块中定义。 也许如果有一些方法可以在http和https上进行托pipe,那么如果不是/special话,将所有stream量从httpredirect到https? (我也需要/RPC2在http上,但这不是一个轨道path,这就是为什么现在工作)。 任何build议,我将不胜感激。 如果您在configuration中看到任何明显的错误,如果您指出这些错误,我也会很感激! server { listen 80; server_name somedomain.com; location / { rewrite ^ https://somedomain.com$request_uri? permanent; } location /RPC2 { include scgi_params; scgi_pass 127.0.0.1:5000; auth_basic "app"; auth_basic_user_file /var/www/server/basic.auth; } } server { listen 443 default ssl; server_name somedomain.com; root /var/www/sites/app/current/public; passenger_enabled on; rails_env production; ssl_certificate /etc/ssl/certs/myssl.crt; ssl_certificate_key /etc/ssl/certs/myssl.key; ssl_protocols SSLv2 […]

微小的Linux发行版的Rails?

我需要为VirtualBox构build一个Linux镜像,其中包括足够的软件来运行Ruby on Rails堆栈 – 基本上就是内核,networking的东西,Ruby 1.9.2,Apache2,mod_rails和git。 任何想法最简单的方法来做到这一点?

Sqlite3-ruby的安装问题

我试图安装sqlite3-ruby的gem(或现在叫,只是sqlite3),每当我跑 gem安装sqlite3 它吐出来了 构build本机扩展。 这个 可能需要一段时间…错误:错误 安装sqlite3:错误:失败 build立gem本地扩展。 /usr/bin/ruby1.8 extconf.rb检查 为sqlite3.h …是检查 sqlite3_libversion_number()中 -lsqlite3 …是检查rb_proc_arity()…没有检查 sqlite3_initialize()…是检查 对于sqlite3_next_stmt()…是的 检查sqlite3_backup_init()… 是检查 sqlite3_column_database_name()…不 检查 sqlite3_enable_load_extension()…是的 检查 sqlite3_load_extension()…是的 创buildMakefile 使cc -I。 -一世。 -I / usr / lib / ruby​​ / 1.8 / x86_64-linux -I。 -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_NEXT_STMT -DHAVE_SQLITE3_BACKUP_INIT -DHAVE_SQLITE3_ENABLE_LOAD_EXTENSION -DHAVE_SQLITE3_LOAD_EXTENSION -I / usr / local / include -I / opt […]