标签: ruby-on-rails

API 管理解决方案

我目前正在构建一个 API 并且正在寻找一种工具来允许我监视(在 GUI 中)和速率限制使用情况。我遇到了一些企业解决方案,包括:

Apigee 企业计划正是我正在寻找的,但计划的起价为 3000 美元/月,超出了我的价格范围。其他解决方案要么太贵,要么不提供我正在寻找的解决方案。

这让我看到了一些开源选项,包括:

清漆似乎是一个相当完整的解决方案;但是,我需要构建一个 GUI 来可视化数据。

我的最后一个选择是使用 EventMachine 和 ruby​​ 从头开始​​构建解决方案。

有什么建议吗?

monitoring nginx proxy ruby-on-rails

9
推荐指数
1
解决办法
1259
查看次数

使用Passenger时使用Nginx over Apache with Rails的优缺点是什么

乘客最近获得了对 Nginx 的支持,它作为 Rails 应用程序的 Web 服务器与 Apache 相比有什么优缺点?

nginx ruby-on-rails phusion-passenger apache-2.2

8
推荐指数
1
解决办法
2380
查看次数

无法访问分配给 Rails 4.2 的端口,但 4.04 工作正常

我安装了 Ruby 2.1.2 和 Rails 4.2。

捆绑安装运行没有错误。

我可以毫无错误地执行 Rails C。

Rails s -p3004 使用 webrick 或 Thin 启动,没有错误

当我浏览到 mytestsite:3004 safari、firefox 和 chrome 时都报告“无法连接到服务器”

任何系统日志中都没有错误显示;syslog、lfd.log、auth.log 或任何 apache 日志。

如果我启动我的 4.04 站点,端口 3001、3002 工作正常。如果我关闭 4.04,并在端口 3001 或 3002 上启动 4.2,我会收到“无法连接到服务器”错误。这对我来说似乎意味着它不是阻止端口的防火墙问题。尽管如此, iptables -L 报告端口 3004 已打开:

ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW tcp dpt:3004
Run Code Online (Sandbox Code Playgroud)

Rails 报告:

=> Booting WEBrick  
=> Rails 4.2.0.beta1 application starting in development on http://localhost:3004   
=> Run `rails server -h` for more startup options  
=> Ctrl-C to shutdown …
Run Code Online (Sandbox Code Playgroud)

port ruby-on-rails

8
推荐指数
1
解决办法
6475
查看次数

VPS 的良好 LAMP/Rails 管理员参考?

经过多年的共享托管,我刚刚切换到 VPS,所以我需要提高我的管理技能。几年前,我是 UNIX 管理员,但我很生疏,特别是不知道管理网络堆栈 (LAMP) 的细节,并投入了一点 RoR。

关于快速管理此堆栈的良好参考的任何建议?这是一个个人网站,所以我不需要对安全/性能过于执着。

linux lamp ruby-on-rails

7
推荐指数
1
解决办法
352
查看次数

STARTTLS 后丢失连接:Postfix

我已经设置了一个 Postfix + Courier 服务器,并且有一个使用 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 from localhost[127.0.0.1]
Feb 22 03:57:24 alpha postfix/smtpd[1601]: disconnect from localhost[127.0.0.1]
Feb 22 03:57:24 alpha …
Run Code Online (Sandbox Code Playgroud)

ssl postfix ruby-on-rails tls starttls

7
推荐指数
2
解决办法
2万
查看次数

Firefox 和 Chrome 继续使用 nginx/Passenger 在 Rails 应用程序上强制使用 HTTPS

我在这里遇到了一个非常奇怪的问题,每次我尝试在非 SSL 模式下浏览我的 Rails 应用程序时,Chrome (v16) 和 Firefox (v7) 一直强制我的网站在 HTTPS 中提供服务。

我的 Rails 应用程序使用 Capistrano、nginx、Passenger 和通配符 SSL 证书部署在 Ubuntu VPS 上。

我在 nginx.conf 中为端口 80 设置了这些参数:

            passenger_set_cgi_param HTTP_X_FORWARDED_PROTO http;
            passenger_set_cgi_param HTTPS off;
Run Code Online (Sandbox Code Playgroud)

我的 nginx.conf 的长版本可以在这里找到:https : //gist.github.com/2eab42666c609b015bff

ssl-redirect.include 文件包含:

rewrite ^/sign_up https://$host$request_uri? permanent ;
rewrite ^/login https://$host$request_uri? permanent ;
rewrite ^/settings/password https://$host$request_uri? permanent ;
Run Code Online (Sandbox Code Playgroud)

这是为了确保这三个页面在来自非 SSL 请求时使用 HTTPS。

我的 production.rb 文件包含这一行:

  # Enable HTTP and HTTPS in parallel
  config.middleware.insert_before Rack::Lock, Rack::SSL, :exclude => proc { |env| env['HTTPS'] != …
Run Code Online (Sandbox Code Playgroud)

ssl nginx https ruby-on-rails phusion-passenger

7
推荐指数
2
解决办法
5529
查看次数

Linux 中是否有任何对托管 Ruby on Rails 必不可少的功能?

我在一个项目中,我们将在我们拥有的 Linux 服务器上托管 Ruby on Rails 应用程序。是否所有版本的 Linux 都能够托管 Rails 应用程序?如果不是,那么某些 Linux 发行版中存在哪些功能,而其他对于托管 Rails 应用程序必不可少的功能则没有?

linux hosting ruby-on-rails

7
推荐指数
1
解决办法
431
查看次数

如何提高 Puma 的日志记录级别?

目前我只在我的 Rails 应用程序日志文件中获得 ActiveRecord 和视图渲染输出,因为我从 WEBrick 切换到 Puma。我一直找不到可以修改 Puma 日志记录输出级别的地方。想法?

logging web-server ruby-on-rails

7
推荐指数
1
解决办法
7986
查看次数

如何在弹性豆茎上安装纱线?

目前您无法使用 yum 安装 yarn,因此似乎没有一种简单的方法来创建在资产预编译之前安装它的配置。

ruby-on-rails amazon-web-services elastic-beanstalk

7
推荐指数
1
解决办法
4400
查看次数

Rails/Passenger 是否有后端感知负载平衡器?

我们在许多应用程序服务器上安装了 3 个 Ruby on Rails 应用程序(A、B 和 C)。我们的前端是 HAProxy,后端是 Apache + Phusion Passenger。最初我们在每个应用程序服务器上都安装了所有 3 个 Rails 应用程序,但是这个设置很慢,因为 HAProxy“不知道”给定的 Rails 应用程序在给定的支持服务器上是否“热”。

在此处输入图片说明

每个乘客实例配置为最多运行 8 个 Rails 应用程序实例。

考虑以下场景(简化):

  1. 应用程序 A 的 8 个同时请求进来,HAProxy 将它们全部调度到第一个应用程序服务器,因为其余请求“非常忙”处理其他请求。
  2. 乘客在此服务器上启动应用程序 A 的 8 个实例。
  3. 另一个请求传入应用程序 B,它也被分派到第一个应用程序服务器,因为其他应用程序服务器仍然太忙。
  4. 现在乘客必须关闭应用程序 A 的一个实例并创建应用程序 B 的一个实例。

在每分钟有大量请求的大计划中,所有 3 个 Rails 应用程序经常在每个应用程序服务器上启动和停止,这很慢

在完美世界中,应用程序启动一次并处理大量请求,而无需关闭和重新启动。这就是为什么我们必须在 3 个 Rails 应用程序之间划分我们的应用程序服务器:

  • 应用程序 A 在 13 个服务器上运行。
  • 应用程序 B 在 5 个服务器上运行。
  • App C 在 2 个服务器上运行。

问题:是否有一个负载均衡器软件可以“感知”后端并且知道并使用以下信息来平衡负载:

  • 每个后端服务器当前有多少个每个应用程序的活动/热实例?
  • 这些实例中有多少当前正在处理请求?
  • 给定应用程序每分钟/小时的当前平均请求数是多少?
  • 是否需要“减少”一个应用程序并“增加”另一个应用程序? …

load-balancing haproxy ruby-on-rails phusion-passenger high-load

6
推荐指数
1
解决办法
997
查看次数