Я видел все другие вопросы здесь, но ни один из них, похоже, не работает для меня. Всякий раз, когда я пытаюсь зайти на свой сайт, я получаю сообщение об отказе в соединении через журналы 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.