2016-08-16 2 views
0

Я установил последнюю стабильную версию NGINX (1,10)Rails, NGINX не загружает развернутое приложение

В моем проекте Rails Я создал nginx.conf файл:

upstream puma_myapp { 
    server unix:///var/www/myapp/shared/tmp/sockets/myapp.sock; 
} 

server { 
    listen 80 default_server deferred; 
    # server_name example.com; 

    root /var/www/myapp/current/public; 
    access_log /var/www/myapp/current/log/nginx.access.log; 
    error_log /var/www/myapp/current/log/nginx.error.log info; 

    location ^~ /assets/ { 
    gzip_static on; 
    expires max; 
    add_header Cache-Control public; 
    } 

    try_files $uri/index.html $uri @puma; 
    location @puma { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    proxy_pass http://puma_myapp; 
    } 

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

меня развернуть мое приложение рельсы с помощью Capistrano. Это деамонизировало мое заявление.

Сейчас в /etc/nginx нет sites-enabled папка. Я создал эту папку, то я написал это:

sudo ln -nfs "/var/www/myapp/current/config/nginx.conf" "/etc/nginx/sites-enabled/myapp" 

Тогда я перезагрузить Nginx:

sudo service nginx restart 

Когда я открываю свой адрес страницы, я до сих пор получить страницу Nginx по умолчанию, почему это происходит?

Мой puma.rb файл:

#!/usr/bin/env puma 

directory '/var/www/myapp/current' 
rackup "/var/www/myapp/current/config.ru" 
environment 'production' 

pidfile "/var/www/myapp/shared/tmp/pids/puma.pid" 
state_path "/var/www/myapp/shared/tmp/pids/puma.state" 
stdout_redirect '/var/www/myapp/current/log/puma.error.log', '/var/www/myapp/current/log/puma.access.log', true 



threads 4,16 

bind 'unix:///var/www/myapp/shared/tmp/sockets/myapp.sock 

workers 0 

Мой var/log/nginx/error.log файл показывает следующее:

2016/08/16 10:07:01 [error] 10157#10157: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, $ 
2016/08/16 10:14:49 [error] 10157#10157: *3 open() "/usr/share/nginx/html/phpMyAdmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, $ 
2016/08/16 10:14:55 [error] 10157#10157: *4 open() "/usr/share/nginx/html/pma/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, server:$ 
2016/08/16 10:15:00 [error] 10157#10157: *5 open() "/usr/share/nginx/html/myadmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, ser$ 
2016/08/16 10:36:20 [error] 26599#26599: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$ 
2016/08/16 10:42:11 [error] 27962#27962: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$ 
+0

Можете ли вы также опубликовать свой 'puma.rb'? – slowjack2k

+0

Я только что понял ваш маленький намек на то, что не было папки с включенными сайтами. Какую операционную систему вы используете? Вы установили nginx через диспетчер пакетов? Когда 'sites-enabled' не завершался, это может означать, что ваш nginx не включает конфиги в' sites-enabled', и вам нужно добавить 'include/etc/nginx/sites-enabled/*;' в ваш nginx.conf – slowjack2k

+0

Попробуйте использовать 'listen' вместо' bind' в файле unicorn puma.rb и каков результат вашего журнала ошибок puma? Есть ли у вас ошибки в nginx в '/ var/log/nginx/error.log' или любых других журналах, указанных выше? – yekta

ответ

1

Каталог sites-enabled - это специфическая особенность пакета Debian. Если вы установили другой пакет nginx или создали его самостоятельно, то nginx.conf, скорее всего, не содержит директивы include /etc/nginx/sites-en‌​a‌​bled/*;, а файлы конфигурации из этого каталога не включены.

+0

Я просто добавлю, что лучше всего установить его из системного пакета, а не самостоятельно его создавать, тем самым вы a) не столкнетесь с такими странными проблемами, как это, и b) упростите обновление обновлений безопасности для Nginx. – yekta

1

Ваш связывать сокет в puma.rb не совпадает с сокет в nginx.conf

Edit после обновления вопроса :

PMA? Похоже, вы используете plesk для администрирования вашей системы. plesk генерирует много материала. Вы должны проверить, где именно нужны ваши плагины.

+0

Хорошо, для nginx.conf 'unix: /var/www/myapp/shared/tmp/sockets/myapp.sock;' должно быть достаточно. Я не знаю, является ли это проблемой, когда вы добавляете дополнительные '/'. Предоставляет ли 'puma.error.log' или' nginx.error.log info' информацию? – slowjack2k

+0

'puma.error.log' показывает сообщения, которые были демонизированы. Интересно то, что файла 'nginx.error.log' нет. Это похоже на то, что nginx игнорирует папку с сайтами. В других VPS у меня был NGINX '1.4', который отлично работает, но в этом месте, где находится« 1.10 », это происходит. –

+1

Держу пари, что ваш конфиг не включен. – slowjack2k

Смежные вопросы