Articles of ruby on rails

蓝色/绿色testing与nginx +独angular兽的轨道

我正在使用Unicorn作为我的Web应用程序前面的应用程序服务器。 我希望通过同时运行两个版本的站点来进行蓝/绿色testing。 问题是根path是从一个版本的网站到另一个不同。 有没有办法做到这一点? 这是我的configuration。 现在它不起作用,因为当第二台服务器出现循环时,文件被破坏,因为它们不在根path。 upstream unicorn { server unix:/tmp/unicorn.main.sock fail_timeout=0; server unix:/tmp/unicorn.main_staging.sock fail_timeout=0; } server { listen 80; server_name mysite.com; root /var/www/sites/main/current/public; try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass https://unicorn; } location ~ ^/assets/ { expires 1y; add_header Cache-Control public; add_header ETag ""; break; […]

nginx和site.erb:标记为两个不同域和两组不同IP的内部用户

我有一个nginx服务器和一个site.erb文件和两个不同的域(域1和域2)。 目前,当某人从特定的一组远程IP地址( set $analytics "'userType': 'internal'" )访问网站时,会设置一个标签(用于Google跟踪代码pipe理器),并将此信息发送给Google Analytics: # Set userType variable for Google Tag Manager (default is external) set $analytics "'userType': 'external'"; # LAN traffic is internal therefore, if ($remote_addr = zzz.zzz.zzz.zzz) { set $analytics "'userType': 'internal'"; } # The Wifi traffic is internal therefore, if ($remote_addr = yyy.yyy.yyy.yyy) { set $analytics "'userType': 'internal'"; […]

通过共享托pipe使SSL适用于Ruby on Rails应用程序

我的问题:让我的Ruby on Rails应用程序使用SSL在JustHost共享服务器上运行。 各个部分分别在共享服务器上工作: 我已经build立了我的应用程序,通过cpanel中主机的Phusion Passengerconfiguration工作。 我已经尝试过,没有“生产”标志打勾。 我可以通过http /端口80运行我的应用程序。它一切正常。 我可以访问https /端口443上的安全连接。但是,当我这样做,我只是得到一个目录列表。 我可以在config / production.rb中强制使用config.force_ssl = true的ssl连接,但是我只是被强制转到目录列表。 我的.htaccess文件如下所示: <IfModule mod_passenger.c> Options -MultiViews PassengerResolveSymlinksInDocumentRoot on #Set this to whatever environment you'll be running in RailsEnv production # following line changes to development or production RackBaseURI /home2/mysite/production/myapp SetEnv GEM_HOME /home2/mysite/ruby/gems PassengerEnabled on </IfModule> 我的文件设置是这样的: ~/public_html/ site –> ~/production/myapp/public […]

Nginx的X-Accellredirect给502坏的网关

我想允许用户从远程存储下载文件,但我想先通过我的Rails应用程序validation请求。 当railsvalidation请求时,我想把远程文件的代理移交给nginx,释放ruby / rails线程。 我有这个名为proxy_download.conf的nginx conf文件: # Proxy download location ~* ^/internal_redirect/(.*?)/(.*) { # Do not allow people to mess with this location directly # Only internal redirects are allowed internal; # Location-specific logging access_log logs/internal_redirect.access.log combined; error_log logs/internal_redirect.error.log warn; # Extract download url from the request set $download_uri $2; set $download_host $1; # Compose […]

Rails + Nginx + SSL – 在某些路由上不允许SSL

我有一个由nginx服务的Rails应用程序。 我用这个conf在所有路由上启用了ssl: server { listen [::]:80; listen 80; server_name domain.com; access_log /var/log/nginx/domain-access.log; error_log /var/log/nginx/domain-error.log; return 301 https://$host:443$request_uri; } server { listen [::]:443 ssl spdy; listen 443 ssl spdy; server_name domain.com; access_log /var/log/nginx/domain-access.log; error_log /var/log/nginx/domain-error.log; ssl_certificate /home/dokku/domain/tls/server.crt; ssl_certificate_key /home/dokku/domain/tls/server.key; keepalive_timeout 70; add_header Alternate-Protocol 443:npn-spdy/2; location / { gzip on; gzip_min_length 1100; gzip_buffers 4 32k; gzip_types text/css […]

服务器CPU在100%,没有响应使用PUMA和Nginx

我的服务器CPU百分之百,并且在一两天之后使用PUMA和Nginx没有响应。 我使用4名工人。 到目前为止,我已经看到strace的问题,导致下面的输出 futex(0x20f0f64, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x20f0f60, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0x20f0f30, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x20f0f98, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x20f0f9c, FUTEX_WAIT_PRIVATE, 2376235, NULL) = -1 EAGAIN (Resource temporarily unavailable) 看看FD显示,资源她是“puma.sock”有没有人有一个想法如何接近这个问题?

Opsworks没有正确部署最新的GitHub源代码

我有一个已经运行了一段时间的Opsworks Rails Layer(nginx / unicorn)实例,并且我已经成功地直接从GitHub中部署了我的Rails应用。 昨天,我开始看到一个奇怪的错误,我们最新的代码更改实际上并没有被Opsworks部署。 即我得到一个500错误, 只能从我的github回购旧版本的堆栈跟踪。 发生错误的行不再存在于最新版本的代码中。 当我SSH进入实例并查看/srv/www/<myapp>/current文件夹时,我看到最新的代码文件,并在Opsworks Deploy日志文件中看到对最新GitHub提交的引用。 它看起来像所有东西都正确部署(即我看到没有错误的日志文件,部署成功完成),但显然有什么问题。 有没有人有任何想法? 有没有我不知道的服务器上的代码caching? 我终于尝试停止/重新启动实例,当它重新启动时,我开始得到这个错误: (111:连接被拒绝),当连接到上游 – Opsworks Rails 4 。 我不知道这两个问题是否相关…也许这是所有关于独angular兽不能正常重启…但现在,我真的想深究为什么我最新的GitHub回购代码不看起来像是成功的部署,最终在服务器上运行。 提前致谢!

如何正确configurationnginx在Ubuntu 16.04上的数字海洋上使用rails

我决定在我pipe理的网站上安装最新的Ubuntu 16.04系统,这是一连串的灾难。 我有问题与MySQL服务器,我不知道是完全解决,因为有时我有MySQL连接错误。 我放弃了设置垃圾邮件的攻击。 但我希望至less可以使网站像以前一样。 我得到这些奇怪的nginx错误,我不明白。 在过去,我能够成功部署各种rails应用程序,没有大的问题。 但在这里,我绝望地卡住了。 我的大部分网站都可以正常工作,但有些链接却不行。 http://chrisbeard-images.com/photos?tag=Bridges 他们在本地开发机器上似乎没问题,而且在我重新安装系统之前完全正常。 $尾日志/ nginx.error.log给我错误,我不明白 2016/06/20 21:01:34 [info] 17909#17909: *41 client closed connection while waiting for request, client: 86.22.165.132, server: 0.0.0.0:80 $ tail log / nginx.access.log “GET / photos?tag =桥梁HTTP / 1.1”500 643“ http://chrisbeard-images.com/tags ”“Mozilla / 5.0(X11; Ubuntu; Linux x86_64; rv:47.0)Gecko / 20100101 Firefox / 47.0“ $ […]

build议:Docker Infastructure为新手,Flynn,Dokku和Deis还是普通的docker?

为了给出一些背景,我们是一个开发机构,主要是使用Ruby / Rails开发复杂的数据驱动的Web应用程序。 这些应用程序通常使用各种服务,如数据库,caching层,全文索引等。 我们已经开始使用docker进行开发,并希望开始部署。 我们目前使用木偶,继续部署和所有常用的库尔援助… 我们正在考虑推出Flynn,Docker或Deis,现在正在考虑Flynn,但我想知道我们是否应该打扰一切? 有一个更简单的或本地docker解决scheme(如群),我们失踪了吗? 我们想要的是快速启动应用程序的能力,如果它的heroku比这对我们来说是一个奖金,但是我们真的有足够的能力能够pipe理一些没有所有的花里胡哨的东西,而赞成更容易pipe理和推出长期。 我们必须反复重复这个设置,并能够为多个客户进行pipe理,因此需要理解和可靠。 我们喜欢简单! 那么你会推荐我们去哪条路线? 首先十分感谢。 保罗

Gem bundler从Ruby on Rails服务器上消失了

Linux(Ubuntu)Ruby on Rails WEBrick服务器昨晚运行良好。 今天早上醒来,我用SSH连接到远程服务器的计算机停滞了。 重新启动后,我试图重新启动服务器进程。 当我这样做的时候,我遇到了: enter code here/usr/local/lib/site_ruby/2.3.0/rubygems.rb:270:in `find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException) from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:298:in `activate_bin_path' from /usr/local/bin/bundle:22:in `<main>' 有谁知道可能会造成这种情况,如何解决这个问题,以及如何防止这种情况发生? 可能是一个安全问题? 当然,这不应该是没有理由的。