У меня есть приложение rails 5.1.7, работающее под AWS микроинстанцией. Я следовал этому руководству Как развертывать приложения rails с помощью Unicorn и nginx на CentOS 6.5 для развертывания в Centos 7x64 для доступа к приложению с помощью http://ip-address/auth/login.
После борьбы с ошибкой 403-Forbidden теперь я вижу стартовый экран Nginx, получая доступ к IP-адресу ( http: // [ip-address] ). Но когда я попытался получить доступ к root url " http: // [ip-address] / auth / login ", он выдает страницу с 500 ошибками и, просматривая журнал nginx, я могу см. ошибку следующим образом.
2020/02/05 18:54:39 [crit] 4427#0: accept4() failed (24: Too many open files)
2020/02/05 18:54:39 [crit] 4427#0: accept4() failed (24: Too many open files)
2020/02/05 18:54:39 [crit] 4427#0: accept4() failed (24: Too many open files)
Я не совсем понимаю сообщение об ошибке, описанное здесь. Я очень ценю вашу помощь в решении проблемы и продвижении вперед.
Вот файлы конфигурации Unicorn и Ngnix по умолчанию для ваших ссылок. config / unicorn.rb
app_name = "lvfp"
# Set the working application directory. This should be your rails app root dir, not the public dir
app_root = File.expand_path(File.dirname(__FILE__) + '/..')
working_directory app_root
# File to store unicorn pid
# pid "/path/to/pids/unicorn.pid"
pid "#{app_root}/tmp/pids/unicorn.pid"
# Path to logs
# stderr_path "/path/to/log/unicorn.log"
# stdout_path "/path/to/log/unicorn.log"
stderr_path "#{app_root}/log/unicorn.log"
stdout_path "#{app_root}/log/unicorn.log"
# Unicorn socket
listen "/tmp/unicorn.#{app_name}.sock"
# Number of processes
worker_processes number_of_app_instances
# Time-out
timeout 30
/ etc / nginx / conf.d / default.conf
upstream app {
# Path to Unicorn SOCK file, as defined previously
server unix:/tmp/unicorn.lvfp.sock fail_timeout=0;
}
server {
listen 80;
server_name localhost;
# Application root, as defined previously
root /root/my_app/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;
}
location / {
proxy_pass http://ip-address:3000
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}