我是使用 Nginx 和独角兽部署Rails应用程序的新手。
我部署了应用程序并安装了独角兽和 Nginx ,但它正在从公用文件夹访问文件和文件夹,而不是运行我的 Rails应用程序。
我已将 config / unicorn.rb 添加到:
app_dir = File.expand_path(File.dirname(__FILE__) + '/..')
worker_processes 2
preload_app true
timeout 3000
listen app_dir + '/shared/sockets/unicorn.sock', backlog: 64
working_directory app_dir
pid app_dir + '/shared/pids/unicorn.pid'
stderr_path app_dir + '/shared/log/unicorn.log'
stdout_path app_dir + '/shared/log/unicorn.log'
stderr_path "#{app_dir}/shared/log/unicorn.stderr.log"
stdout_path "#{app_dir}/shared/log/unicorn.stdout.log"
preload_app true
GC.respond_to?(:copy_on_write_friendly=) &&
GC.copy_on_write_friendly = true
before_fork do |server, worker|
defined?(ActiveRecord::Base) &&
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
defined?(ActiveRecord::Base) &&
ActiveRecord::Base.establish_connection
end
我已配置/etc/init.d/unicorn_instant_booking
set -e
USAGE="Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"
USER="root"
APP_NAME="instant_booking"
APP_ROOT="/$USER/rails/$APP_NAME"
ENV="production"
PATH="/$USER/.rbenv/shims:/home/$USER/.rbenv/bin:$PATH"
CMD="cd $APP_ROOT && bundle exec unicorn -c config/unicorn.rb -E $ENV -D"
PID="$APP_ROOT/shared/pids/unicorn.pid"
OLD_PID="$PID.oldbin"
cd $APP_ROOT || exit 1
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PID && kill -$1 `cat $OLD_PID`
}
case $1 in
start)
sig 0 && echo >&2 "Already running" && exit 0
echo "Starting $APP_NAME"
su - $USER -c "$CMD"
;;
stop)
echo "Stopping $APP_NAME"
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
echo "Force stopping $APP_NAME"
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload|upgrade)
sig USR2 && echo "reloaded $APP_NAME" && exit 0
和 / etc / nginx / sites-available / default
upstream app {
server unix:/root/rails/instant_booking/shared/sockets/unicorn.sock fail_timeout=0;
}
server {
listen 80;
listen [::]:80 ipv6only=on default_server;
root /root/rails/instant_booking/public;
index index.html index.htm;
server_name mydomainapp.com;
autoindex on;
try_files $uri $uri/ =404 @app;
location @app {
proxy_pass http://mydomainapp.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
我没有得到我失踪的东西。请帮忙 感谢。