मुझे थोड़ी देर के लिए यह समस्या हो रही है और इसके बारे में बहुत कुछ पता चला है, लेकिन मेरी समस्या को हल करने के लिए कुछ भी नहीं लगता है।रेलल्स जवाब देना बंद कर देता है अगर निष्क्रिय
मेरे पास एनजीआईएनएक्स और यूनिकोरन डॉकर के साथ सब कुछ के साथ रेल पर रुबी में चल रहा है।
यदि मैं एप्लिकेशन चलाता हूं (डॉकर-कंपोज़ अप) वेबसाइट कुछ मिनटों के लिए पूरी तरह से चलती है। यदि वेबसाइट लगभग 5 से 10 मिनट तक निष्क्रिय रहती है, और मैं एक और अनुरोध भेजता हूं तो रेल एप्लिकेशन यूनिकॉर्न से समय देने का जवाब देना बंद कर देता है।
अजीब हिस्सा यह है कि मेरे द्वारा विकसित हर एप्लिकेशन में एक ही समस्या है और इन अनुप्रयोगों में आम बातों में एकमात्र चीज Gemfile है।
मुझे अब तक जो मिला है वह यह है कि जब अनुरोध भेजा जाता है, तो एनजीआईएनएक्स को यह अनुरोध प्राप्त होता है, इसे यूनिकॉर्न में भेज दिया जाता है, यूनिकॉर्न इसे प्राप्त करता है और रूबी से गुजरता है ... जो जवाब नहीं देता है और फिर यूनिकॉर्न मुझे 502 खराब देता है निवेदन।
मैं वास्तव में इस पर खो गया हूं।
इसमेरी nginx कॉन्फ़िग फ़ाइल है:
upstream applicationName {
# Path to Puma SOCK file, as defined previously
server unix:/tmp/applicationName.sock fail_timeout=0;
}
server {
listen 80;
server_name dev.applicationName.com.br;
location/{
autoindex on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
# time out settings
proxy_connect_timeout 159s;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass_header Set-Cookie;
proxy_redirect off;
proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';
proxy_ignore_headers Cache-Control Expires;
proxy_set_header Referer $http_referer;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://applicationName;
}
}
और ये मेरे गेंडा config
@dir = File.expand_path(File.dirname(__FILE__)) + "/.."
worker_processes 2
working_directory @dir
timeout 10
listen File.join('/tmp/applicationName.sock')
preload_app true# if ENV['RAILS_ENV'] != 'development'
GC.respond_to?(:copy_on_write_friendly=) and
GC.copy_on_write_friendly = true
check_client_connection false
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
यह वह जगह है Gemfile (इसके साथ कुछ भी गलत नहीं)
source 'https://rubygems.org'
gem 'rails', '4.2.4'
gem 'unicorn-rails', '~> 2.2'
gem 'pg'
gem 'mysql2', '~> 0.3.18'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'duktape'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'bootstrap-sass'
gem 'devise'
gem 'simple_form'
gem 'minitest'
gem "paperclip", "~> 4.3"
gem 'aws-sdk', '< 2.0'
gem 'mail_form', '~> 1.5.0.rc'
gem 'sendgrid-ruby'
gem 'zopim_rails'
gem 'meta-tags'
gem 'ckeditor'
gem 'slick_rails'
group :development do
gem 'better_errors'
gem 'binding_of_caller', :platforms=>[:mri_20]
gem 'quiet_assets'
gem 'rails_layout'
gem 'spring-commands-rspec'
gem 'web-console', '~> 2.0'
gem 'spring'
end
group :production do
gem 'therubyracer'
end
group :development, :test do
gem 'factory_girl_rails'
gem 'faker'
gem 'pry-rails'
gem 'pry-rescue'
gem 'rspec-rails'
gem 'rubocop'
gem 'byebug'
end
group :test do
gem 'capybara'
gem 'database_cleaner'
gem 'launchy'
gem 'selenium-webdriver'
end
लॉग है सर्वर पर मुझे यह दिखाता है, जब त्रुटि होती है:
nginx_1 | 172.17.0.1 - - [05/Feb/2016:12:52:41 +0000] "GET /products HTTP/1.1" 502 574 "http://dev.nutrimais.com.br/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36"
web_1 | E, [2016-02-05T12:52:41.551728 #1] ERROR -- : reaped #<Process::Status: pid 9 SIGKILL (signal 9)> worker=0
और विकास लॉग पर:
Started GET "/products" for 127.0.0.1 at 2016-02-05 12:52:18 +0000
Cannot render console from 127.0.0.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
आप इसे थोड़ा और अधिक डिबग करने की कोशिश की? अपने रेल सर्वर को सीधे लॉन्च करने की तरह (रेल के उत्पादन) और उस तक पहुंच या यात्री या प्यूमा जैसे यूनिकॉर्न के बराबर कोशिश कर रहे हैं? यदि चीजें अभी भी विकल्पों के साथ गलत हो जाती हैं, तो यह निश्चित रूप से चीजों को कम कर देगा, आपको नहीं लगता? :) – Kulgar
मैंने प्यूमा की कोशिश की है और यह बदतर था। एप्लिकेशन को कुछ मिनटों के बाद धीमा होना शुरू हो गया और दुर्घटनाग्रस्त हो गया, जिससे उपयोगकर्ता फिर से वेब साइट दर्ज कर सके। –
यह अजीब बात है ... और जब आप "रेल सर्वर उत्पादन" लॉन्च करते हैं तो क्या होता है और आप http: // your_server_ip: 3000 के माध्यम से इसे सीधे एक्सेस करते हैं? – Kulgar