Назад | Перейти на главную страницу

Проблемы с подключением Unicorn к Nginx

Я видел все другие вопросы здесь, но ни один из них, похоже, не работает для меня. Всякий раз, когда я пытаюсь зайти на свой сайт, я получаю сообщение об отказе в соединении через журналы nginx. Я предполагаю, что возникла проблема с разрешениями или кто-то слушает не тот порт. Вот ошибка, которую я получаю.

2014/10/06 10:13:50 [критический] 18027 # 0: * 1 connect () to unix: /var/www/reportcard/dev/pids/unicorn.pid не удалось (13: разрешение отказано) при подключении к восходящему потоку , клиент: my_ip, сервер: dev.reportcard.io, запрос: «GET / HTTP / 1.1», восходящий поток: «http: //unix:/var/www/reportcard/dev/pids/unicorn.pid:/», хост: "dev.reportcard.io"

У меня есть приложение rails, расположенное в / var / www / reportcard / dev, а из ls -l для него:

drwxr-xr-x 9 ghost    ghost    4096 Sep 19 11:38 ghost
drwxr-xr-x 3 www-data www-data 4096 Jun  2 15:21 park
drwxr-xr-x 3 willkara www-data 4096 Jul 29 15:33 reportcard

Here's the ls -l for reportcard

drwxr-xr-x 14 willkara www-data 4096 Jul 29 15:55 dev
-rwxr-xr-x  1 willkara www-data   56 Jul 28 20:17 index.html

Вот ps -ef | grep unicorn output.

root@slimer:/var/www# ps -ef | grep unicorn
willkara 14265     1  0 15:54 ?        00:00:00 unicorn_rails master -c config/unicorn.rb -D -E development
willkara 14268 14265  0 15:54 ?        00:00:02 unicorn_rails worker[0] -c config/unicorn.rb -D -E development

Вот ps -ef | вывод grep для nginx

willkara@slimer:/var/www/reportcard/dev$ ps -ef | grep nginx
root     18026     1  0 10:13 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data 18027 18026  0 10:13 ?        00:00:00 nginx: worker process
www-data 18028 18026  0 10:13 ?        00:00:00 nginx: worker process
willkara 18073 19220  0 10:14 pts/0    00:00:00 grep --color=auto nginx

Конфигурационный файл единорога выглядит так:

  1 # Set the working application directory
  2 # working_directory "/path/to/your/app"
  3 working_directory "/var/www/reportcard/dev"
  4
  5 # Unicorn PID file location
  6 # pid "/path/to/pids/unicorn.pid"
  7 pid "/var/www/reportcard/dev/pids/unicorn.pid"
  8
  9 # Path to logs
 10 # stderr_path "/path/to/log/unicorn.log"
 11 # stdout_path "/path/to/log/unicorn.log"
 12 stderr_path "/var/www/reportcard/dev/log/unicorn.log"
 13 stdout_path "/var/www/reportcard/dev/log/unicorn.log"
 14
 15 # Unicorn socket
 16 listen "/tmp/unicorn.reportcard.sock"
 17
 18 # Number of processes
 19 # worker_processes 4
 20 worker_processes 2
 21
 22 # Time-out
 23 timeout 30

А конфиг nginx для сайта выглядит так:

upstream app {
    # Path to Unicorn SOCK file, as defined previously
    server unix:/var/www/reportcard/dev/pids/unicorn.pid fail_timeout=0;
}

server {


    listen 80;
    server_name dev.reportcard.io;

    # Application root, as defined previously
    root /var/www/reportcard/dev/public;

try_files $uri/index.html  $uri @app;

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

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}

Я считаю, что строка в вашей конфигурации nginx гласит

server unix:/var/www/reportcard/dev/pids/unicorn.pid fail_timeout=0;

на самом деле должен быть вашим сокетом, а не вашим pid.