2016-03-29 3 views
0

Я пробовал разные конфигурации и не могу понять, почему Thin выбрасывает время. По крайней мере, это то, что, как я думаю, происходит. Тонкий недоступен после того, как сервер некоторое время простаивает (т. Е. За одну ночь).Тонкий тайм-аут Nginx не может подключиться

Окружающая среда:

  • Ubuntu 14.04 работает на AWS t2.nano
  • Redmine: Redmine 2.6.10.stable.15251
  • Ruby: 1.9.3p484 (2013-11-22 редакция 43786) [x86_64-линукс]
  • Rails: 3.2.22.2
  • Thin: 1.3.1 кодовое Тройной Эспрессо
  • База данных: MySQL

Нет Тонкий журнал ошибок. Журнал ошибок в Nginx является:

2016/03/24 07:01:47 [ошибка] 18432 # 0: * 1376 подключения() для UNIX: /ebs_001/redmine/run/thin/redmine.0 .sock failed (111: Connection failed) при подключении к восходящему потоку, клиент: 184.166.153.12, server: pm.source3.com, request: «GET/HTTP/1.1», вверх по течению: «http://unix:/ebs_001/redmine/run/thin/redmine.0.sock:/», хост: «pm.source3 .com "

Я могу перезапустить Thin (подробнее об этом позже) и подключиться без перезапуска Ngnix.

Когда я пытаюсь остановить Thin я получаю следующее сообщение

[email protected]:/var/log/nginx$ sudo service thin stop 

[stop] /etc/thin1.9.1/redmine.yml ... 
Stopping server on /ebs_001/redmine/run/thin/redmine.0.sock ... 
Sending QUIT signal to process 18385 ... 
process not found! 
Sending KILL signal to process 18385 ... 
/usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:140:in `kill': No such   process (Errno::ESRCH) 
    from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:140:in `force_kill' 
    from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:134:in `rescue in send_signal' 
    from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:118:in `send_signal' 
    from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:107:in `kill' 
    from /usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:93:in `block in stop' 
    from /usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:134:in `tail_log' 
    from /usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:92:in `stop' 
    from /usr/lib/ruby/vendor_ruby/thin/runner.rb:185:in `run_command' 
    from /usr/lib/ruby/vendor_ruby/thin/runner.rb:151:in `run!' 
    from /usr/bin/thin:6:in `<main>' 

После того как я остановить Thin, я могу затем начать Thin (Судо сервис Thin старт) и подключиться к Redmine проекта без перезагрузки nxinx. Я не вижу ошибок в redmine или Thin.

Мой /etc/thin/redmine.yml файл:

--- 
user: user1 
group: group1 
pid: /ebs_001/redmine/run/thin/redmine.pid 
timeout: 30 
wait: 30 
log: /ebs_001/redmine/logs/thin/redmine.log 
max_conns: 1024 
require: [] 
environment: production 
max_persistent_conns: 512 
servers: 1 
daemonize: true 
socket: /ebs_001/redmine/run/thin/redmine.sock 
chdir: /ebs_001/redmine/redmine-2.6 
tag: redmine 

Части моего /etc/nginx/sites-available/redmine.conf:

# Upstream Ruby process cluster for load balancing 
upstream thin_cluster { 
    server unix:/ebs_001/redmine/run/thin/redmine.0.sock; 
    # server unix:/ebs_001/redmine/run/thin/redmine.1.sock max_fails=1  fail_timeout=15s; 
    # server unix:/ebs_001/redmine/run/thin/redmine.2.sock; 
    # server unix:/ebs_001/redmine/run/thin/redmine.3.sock; 
} 

### REDMINE - serve all pages via ssl (https) 

server { 
    listen 80; 
    server_name pm.source3.com; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen  443 ssl; 
    server_name pm.source3.com; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/redmine.crt; 
    ssl_certificate_key /etc/nginx/ssl/redmine.key; 

    include /etc/nginx/includes/redmine.include; 
    proxy_redirect off; 
    root /ebs_001/redmine/redmine-2.6; 

    # An alias to your upstream app 
    location @cluster { 
     proxy_pass http://thin_cluster; 
     # Define what a "failure" is, so it can try the next server 
     proxy_next_upstream error timeout http_502 http_503; 
     # If the upstream server doesn't respond within n seconds, timeout 
     proxy_read_timeout 60s; 
    }  

    location/{ 
     try_files $uri/index.html $uri.html $uri @cluster; 
    } 
} 
... 

И ../ включает/redmine.include

proxy_set_header Host $http_host;                       
proxy_set_header X-Real-IP $remote_addr;                     
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forwarded-Proto $scheme; 

client_max_body_size  10m; 
client_body_buffer_size 128k; 

proxy_connect_timeout  90; 
proxy_send_timeout   90; 
proxy_read_timeout   90; 

proxy_buffer_size   4k; 
proxy_buffers    4 32k; 
proxy_busy_buffers_size 64k; 
proxy_temp_file_write_size 64k; 

это не разрешение вопроса, как я могу перезагрузить Thin и подключиться к Redmine.

У меня только около 15 миллионов свободной памяти. Может быть, это и есть проблема. Но если бы это было так, то Redmine бы разбился, поскольку я использую его в течение дня.

Любая помощь при вычислении таймаута очень ценится. Наконец, я попытался использовать порт, а не сокет, и все еще имел тот же самый тайм-аут

ответ

0

Проблема была на сервере. Я работал во многих приложениях на AWS t2.nano. Redmine был единственным, кто рушился. Ошибки ошибок не были намеком на проблему памяти. И команда «free -h» была большой подсказкой.

я бегу:

  1. Один Django приложение (работает Postgres VIS AWS RDS)
  2. WordPress
  3. Redmine (работает MySQL локально).

Перенос в AWS t2.mircro для большей памяти, и все в порядке.