Redmine Nginx Thin
#
$ mkdir /etc/thin
# создание конфига на локальный IP
$ thin config -C /etc/thin/redmine.yml -c /opt/redmine/redmine-3.3.0 --servers 2 -e production -a 127.0.0.1 -p 3003
#
$ cat /etc/thin/redmine.yml
---
chdir: "/opt/redmine/redmine-3.3.0"
environment: production
# ????
# socket: /tmp/thin.sock
address: 127.0.0.1
port: 3003
timeout: 30
# тут надо подправить
log: "/var/log/thin.log"
pid: tmp/pids/thin.pid
max_conns: 1024
max_persistent_conns: 100
require: []
wait: 30
threadpool_size: 20
servers: 2
daemonize: true
# формируем скрипт запуска /etc/init.d/thin
$ thin install
# запустим
$ service thin start
# получили
$ service thin status
● thin.service - LSB: thin initscript
Loaded: loaded (/etc/init.d/thin)
Active: active (running) since Tue 2017-01-31 11:23:40 EET; 2s ago
Process: 26378 ExecStop=/etc/init.d/thin stop (code=exited, status=0/SUCCESS)
Process: 26392 ExecStart=/etc/init.d/thin start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/thin.service
├─26205 thin server (/tmp/thin.1.sock)
└─26407 thin server (/tmp/thin.0.sock)
Jan 31 11:23:40 srv thin[26392]: [start] /etc/thin/redmine.yml ...
Jan 31 11:23:40 srv thin[26392]: Starting server on /tmp/thin.0.sock ...
Jan 31 11:23:40 srv systemd[1]: Started LSB: thin initscript.
Added 2017.04.08: При переносе на новый сервер появилась ошибка при start service thin:
Apr 08 20:25:48 srv2 systemd[1]: Starting LSB: thin initscript...
Apr 08 20:25:48 srv2 thin[19001]: /usr/bin/env: ruby_executable_hooks: No such file or directory
Apr 08 20:25:48 srv2 systemd[1]: Started LSB: thin initscript.
Решение: найти ruby_executable_hooks и сделать символьную ссылку. Нашлась там:
ln -s /usr/local/rvm/rubies/ruby-2.2.6/lib/ruby/gems/2.2.0/bin/ruby_executable_hooks /usr/bin/ruby_executable_hooks
При обращении к Redmine получаем ошибку в /var/log/nginx/redmine_error.log что backend не доступен.
# в логе thin-а
Listening on 127.0.0.1:3003, CTRL+C to stop
Exiting!
/var/lib/gems/2.1.0/gems/thin-1.7.0/lib/thin/backends/tcp_server.rb:16:in `connect': cannot load such file -- thin/connection (LoadError)
from /var/lib/gems/2.1.0/gems/thin-1.7.0/lib/thin/backends/base.rb:63:in `block in start'
# добавляем thin в Gefile
$ cd /opt/redmine/redmine-3.3.0/
$ echo 'gem "thin"' >> Gemfile
$ bundler update
$ bundler install
# перезапускам thin
$ service thin restart
# проверяем
$ netstat -pln | grep thin
tcp 0 0 127.0.0.1:3003 0.0.0.0:* LISTEN 7878/thin server (1
unix 2 [ ACC ] STREAM LISTENING 4322645 26679/thin.0.sock) /tmp/thin.0.sock
unix 2 [ ACC ] STREAM LISTENING 4317145 26205/thin.1.sock) /tmp/thin.1.sock
unix 2 [ ACC ] STREAM LISTENING 4323474 26843/thin.0.sock) /tmp/thin.0.sock
Заходим в Redmine. Все работает.
Ошибка: Не загружаются файлы (added 2017.04.08) В лог-е Nginx:
Cуть: js файл не является статическим в Redmine, а генерируется. В конфиге Nginx-а отдача JS была настроена как статического файла. Решение: Исключить расширение JS из статических в настройка сайта в Nginx.