小编Ana*_*oly的帖子

在Ruby中反转一个字符串

你如何在Ruby中反转字符串?我知道字符串#verse.我有兴趣了解如何用纯Ruby编写它,最好是一个就地解决方案.

ruby

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

使用Nginx的代理TCP流(MySQL和Redis)

我读到了Nginx Fabric Model,它引起了我的注意力,重新配置应用程序如何与MySQL和Redis进行通信.如果本地Nginx实例可以高效且快速地代理HTTP流量,那么现在它也可以代理TCP而不必担心网络,即使在紧急情况下使用数据库slave作为主服务器并且可能封装数据库分片.所有这些好处都可以简化应用程序配置及其逻辑,网络(拥塞,延迟,超时,重试)将不再是功能开发的重点.

我使用最新的Docker和一组容器:Nginx,Redis,MySQL.我尝试了以下配置:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log info;
pid        /var/run/nginx.pid;


events {
  worker_connections  1024;
}

stream {
  upstream redis {
    # prefer first server but limit connections
    server 172.17.0.8:6379 weight=2 max_conns=1;
    server 172.17.0.3:6379;
  }

  upstream mysql {
    # use second server in case of failure
    server 172.17.0.4:3306;
    server 172.17.0.5:3306 backup;
  }

  server {
    listen 6379 so_keepalive=on;
    proxy_pass redis;
  }

  server {
    listen 3306 so_keepalive=on;
    proxy_pass mysql;
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一些问题: …

mysql performance load-balancing nginx redis

19
推荐指数
1
解决办法
3768
查看次数

通过标头令牌进行rails-api认证

我想使用rails-api gem special来创建仅限API的应用程序.为了提供身份验证机制,我想使用Railscasts#352中描述的内置authenticate_or_request_with_http_token方法,但此方法在此处缺失.

有没有人对rails-api gem 有经验?

PS我可以看到这种方法,但是这个生产准备好了吗?

authentication ruby-on-rails rails-api

15
推荐指数
1
解决办法
1万
查看次数

Filepicker?通过HTML5将大文件上传到S3,没有后端

使用multipart/form-data上传文件很简单,大部分时间都可以正常工作,直到您开始专注于大文件上传.如果我们仔细查看文件上传期间发生的情况:

  • 客户端发送带有BODY文件内容的POST请求

  • webserver接受请求并启动数据传输(如果文件大小超过限制,则返回错误413)

  • webserver开始填充缓冲区(取决于文件和缓冲区大小),将其存储在磁盘上并通过套接字/网络发送到后端

  • 后端验证身份验证(看一下文件上传后)

  • 后端读取文件并删除少量标题Content-Disposition,Content-Type,将其再次存储在磁盘上后端执行文件所需的全部操作

为了避免这种开销,我们将文件转储到磁盘上(Nginx client_body_in_file_only)并管理回调以便进一步向下发送.然后队列工作者选择文件并执行所需操作.它适用于服务器间通信非常流畅,但我们必须解决客户端上传的类似问题.

我们还有客户端S3上传解决方案.没有后端交互发生.对于视频上传,我们管理视频以转换为带有Zencoder的h.264 Baseline/AAC格式.

目前我们使用基于s3-swf-upload-plugin的改进的Flash上​​传器与Zencoder JS SDK的组合,该SDK非常高效但使用Flash.

题.如何使用HTML5文件上传器达到相同的目标?Filepicker.io和Zencoder是否解决了这个问题?在没有后端交互的情况下管理HTML5文件上传的推荐方法是什么?

要求如下:

  • HTML5,而不是flash
  • 通过后期处理上传视频,使其与HTML5播放器和移动设备兼容
  • 通过后期处理上传图像(调整大小,裁剪,旋转)
  • 使用预览功能上传PDF等文档

是否https://www.filepicker.com成为一个好工作吗?

javascript upload html5 amazon-s3 filepicker.io

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

跨AWS扩展应用程序的单点故障

我们有一个基于Rails的应用程序,部署基础架构绑定到AWS.当前架构包括以下层:

  • 负载均衡器(HaProxy)
  • Rails-application(EC2)x2
  • MySQLd数据库(EC2主从)
  • Redis,DelayedJob后台进程
  • Wowza媒体服务器(EC2)
  • S3资产存储(共享数据)

有3个SPF:负载均衡器,数据库,媒体服务器.

我的问题是关于冗余,我如何减少SPF:

  1. 负载均衡器.我们计划设置辅助负载均衡器,但域名仍然相同.在这种情况下,DNS A/AAAA roundrobin故障转移是否是一个很好的解决方案?AWS负载均衡器是否适合使用?
  2. MMM(多主复制管理器)可靠吗?它如何与Rails(读/写独立主机)一起使用?
  3. Wowza媒体服务器,有没有任何着名的HA解决方案可以使用?

scaling mysql-management high-availability ruby-on-rails amazon-web-services

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

Nginx memcached回退到远程服务

我不能让Nginx使用memcached模块,要求是查询远程服务,缓存memcached中的数据,永远不要获取远程端点,直到后端使缓存无效.我有2个带有memcached v1.4.35的容器和一个带有Nginx v1.11.10的容器.

配置如下:

upstream http_memcached {
  server 172.17.0.6:11211;
  server 172.17.0.7:11211;
}

upstream remote {
  server api.example.com:443;
  keepalive 16;
}

server {
  listen 80;

  location / {
    set $memcached_key "$uri?$args";
    memcached_pass http_memcached;
    error_page     404 502 504 = @remote;
  }

  location @remote {
    internal;
    proxy_pass https://remote;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图错误地设置memcached上游,但我得到HTTP 499而不是警告:

*3上游服务器在连接上游时暂时禁用

看来配置Nginx可以成功到达memcached但无法写入或读取.我可以成功地用telnet写入和读取memcached.

你能帮我吗?

memcached nginx

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

通过套接字保持与 Unicorn 的上游连接

Nginx 1.1.4+ 可以使用 HTTP1.1 keepalive指令提供上游连接,请参阅官方文档(它与 keepalived 客户端的连接不同)。所以 Unicorn 配置可以如下所示:

upstream unicorn {
  server             unix:/tmp/unicorn.todo.sock fail_timeout=0;
  keepalive          4;
}

server {
  try_files          $uri/index.html $uri @unicorn;
  keepalive_timeout  70;

  location @unicorn {
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host $http_host;
    proxy_redirect     off;
    proxy_pass         http://unicorn;

    proxy_http_version 1.1;
    proxy_set_header   Connection "";
  }
}
Run Code Online (Sandbox Code Playgroud)

HTTP 连接需要这些标头:proxy_http_versionproxy_set_header

那么问题是配置有效还是套接字连接本身是永久的?

nginx unicorn

5
推荐指数
1
解决办法
2588
查看次数

Devise的匿名用户?

如果我想建立一个带有rails(规范案例)的聊天室,可以选择匿名("挑选昵称")和授权(u/n&pw),我将如何用Devise构建它?

我成功地让Devise在后一种情况下工作,这是我正在努力的匿名部分(创建和维护会话).

ruby-on-rails devise

4
推荐指数
3
解决办法
4034
查看次数

为什么我的红宝石编码找不到素数?

我想知道为什么我的代码不起作用.我是代码世界的新手,所以如果有人能为我解决这个问题,那么最好如何解决它,谢谢!

我正在尝试创建一个程序,它将从我指定的数字列表中指示素数.

请告诉我为什么这两个代码不起作用!我很困惑第二个代码试图做什么,因为我发现它是别人对我的问题的解决方案.我是编码的新手,但我喜欢它,所以请耐心等待!

这是我的简单代码:

def is_prime?(*nums)

    i = 2
    nums.each do |num|
        while i < num
            if num % i == 0
                puts "#{num} is not a prime"
            else
                puts "#{num} is a prime"
            end
            i += 1
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

....为什么这不起作用?我怎样才能让它发挥作用?它一直给我一个奇怪的答案,因为它卡在我的第一个数字上并且似乎没有处理我插入的下一个数字:

puts is_prime?(21, 23, 17)
Run Code Online (Sandbox Code Playgroud)

这是我无法正确运行的第二个代码.有人可以打破这里发生的事情吗?我怎样才能让它发挥作用?

def is_prime?(*nums)
    nums.each_with_object({}) do |num, hsh|
        hsh[num] = num > 1 && 2.upto(num - 1).none? {|i| num % i == 0}
    end
end

puts is_prime?(27, 13, 42)
Run Code Online (Sandbox Code Playgroud)

无论如何,我知道这个问题有点令人困惑,但如果有人关心输入他们的2美分我会很感激!哦,最后我如何正确地在问题板上发布代码?没有导师,我是如此新鲜,如此困惑!

ruby algorithm primes

3
推荐指数
1
解决办法
2113
查看次数

Nginx将所有请求传递给特定的S3文件

我有一个带有我网站静态内容的S3存储桶,我有一个EC2实例,可以接收到网站的所有流量.

我希望每次向EC2发出请求都会从我的S3返回一个特定文件,但我希望保持URL与用户插入的URL相同.

示例:假设我的文件位于/path/index.html如果用户向www.mydomain.com发出请求,我想提供该文件,如果用户向www.mydomain.com/提出请求some/random/path /我仍然想要提供相同的文件.最后一个要求是位置保持不变.也就是说,即使提供了相同的文件,用户仍会在浏览器中看到www.mydoamin.com和www.mydoamin.com/some/random/path/.

这是我到目前为止的nginx配置文件,它似乎不起作用:

server {
    listen 80;
    ssl off;

    location / {
            proxy_http_version     1.1;
            proxy_set_header       Host 'some-host.s3.amazonaws.com';
            proxy_set_header       Authorization '';
            proxy_hide_header      x-amz-id-2;
            proxy_hide_header      x-amz-request-id;
            proxy_hide_header      Set-Cookie;
            proxy_ignore_headers   "Set-Cookie";
            proxy_buffering        off;
            proxy_intercept_errors on;


            resolver               8.8.4.4 8.8.8.8 valid=300s;
            resolver_timeout       10s;

            proxy_pass             http://some-host.s3.amazonaws.com/front-end/index.html;
    }
}
Run Code Online (Sandbox Code Playgroud)

有关如何使这项工作的任何想法?

谢谢!

nginx amazon-s3 amazon-ec2 amazon-web-services

2
推荐指数
1
解决办法
4061
查看次数