2
我使用nginx,puma和capistrano部署我的Rails應用程序。它是由一個名爲deploy
用戶部署和部署位置是主目錄(/home/deploy
)彪馬不在'rails服務器'啓動時在指定位置創建套接字
下我有彪馬配置創建shared
文件夾下的插口,Capistrano的符號鏈接都是它的版本中。相應地,nginx的配置在該插座看作(見下文的配置文件)
然而,當我啓動了Rails /彪馬的Web服務器 -
cd /home/deploy/my_app/current
SECRET_KEY_BASE=.... DATABASE_PASSWORD=... rails s -e production
我注意到,沒有套接字文件被創建。當我在瀏覽器中訪問該站點,然後查看Nginx錯誤日誌時,它也抱怨該套接字不存在。
2016/07/17 14:26:19 [crit] 26055#26055: *12 connect() to unix:/home/deploy/my_app/shared/tmp/sockets/puma.sock failed (2: No such file or directory) while connecting to upstream, client: XX.YY.XX.YY, server: localhost, request: "GET http://testp4.pospr.waw.pl/testproxy.php HTTP/1.1", upstream: "http://unix:/home/deploy/my_app/shared/tmp/sockets/puma.sock:/500.html", host: "testp4.pospr.waw.pl"
我該如何着手讓美洲獅創建該套接字?
謝謝!
彪馬配置
# config/puma.rb
...
# `shared_dir` is the symlinked `shared/` directory created
# by Capistrano - `/home/deploy/my_app/shared`
# Set up socket location
bind "unix://#{shared_dir}/tmp/sockets/puma.sock"
# Logging
stdout_redirect "#{shared_dir}/log/puma.stdout.log", "#{shared_dir}/log/puma.stderr.log", true
# Set master PID and state locations
pidfile "#{shared_dir}/tmp/pids/puma.pid"
state_path "#{shared_dir}/tmp/pids/puma.state"
activate_control_app
...
Nginx的網站配置
# /etc/nginx/sites-available/default
upstream app {
# Path to Puma SOCK file
server unix:/home/deploy/my_app/shared/tmp/sockets/puma.sock fail_timeout=0;
}
server {
listen 80;
server_name localhost;
root /home/deploy/my_app/public;
try_files $uri/index.html $uri @app;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
你是對的。我需要直接用'puma'命令啓動它。出於某種原因,我認爲要求美洲豹寶石會使鋼軌默認使用美洲獅作爲主服務器,所以'軌道服務器'將調用美洲獅。我想 - 菜鳥錯誤 - 謝謝! – user2490003