Nginx and Unicorn configs
This commit is contained in:
parent
1e19b8f2ca
commit
df0e71225f
|
@ -0,0 +1,27 @@
|
|||
upstream oldhaven {
|
||||
server unix:/tmp/unicorn.oldhaven.sock fail_timeout=0;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default deferred;
|
||||
server_name beathaven.org www.beathaven.org;
|
||||
root /home/www/apps/oldhaven/current/public;
|
||||
|
||||
location ^~ /assets/ {
|
||||
gzip_static on;
|
||||
expires max;
|
||||
add_header Cache-Control public;
|
||||
}
|
||||
|
||||
try_files $uri/index.html $uri @oldhaven;
|
||||
location @oldhaven {
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_redirect off;
|
||||
proxy_pass http://oldhaven;
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /500.html;
|
||||
client_max_body_size 4G;
|
||||
keepalive_timeout 10;
|
||||
}
|
|
@ -1,2 +1,11 @@
|
|||
worker_processes 2 # amount of unicorn workers to spin up
|
||||
timeout 30 # restarts workers that hang for 30 seconds
|
||||
PROJECT = "oldhaven"
|
||||
|
||||
root = "/home/www/apps/#{PROJECT}/current"
|
||||
working_directory root
|
||||
pid "#{root}/tmp/pids/unicorn.pid"
|
||||
stderr_path "#{root}/log/unicorn.log"
|
||||
stdout_path "#{root}/log/unicorn.log"
|
||||
|
||||
listen "/tmp/unicorn.#{PROJECT}.sock"
|
||||
worker_processes 2
|
||||
timeout 30
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
#!/bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: unicorn
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Manage unicorn server
|
||||
# Description: Start, stop, restart unicorn server for a specific application.
|
||||
### END INIT INFO
|
||||
set -e
|
||||
|
||||
# Feel free to change any of the following variables for your app:
|
||||
PROJECT=oldhaven
|
||||
TIMEOUT=${TIMEOUT-60}
|
||||
APP_ROOT="/home/www/apps/$PROJECT/current"
|
||||
PID=$APP_ROOT/tmp/pids/unicorn.pid
|
||||
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
|
||||
AS_USER=www
|
||||
set -u
|
||||
|
||||
OLD_PIN="$PID.oldbin"
|
||||
|
||||
sig () {
|
||||
test -s "$PID" && kill -$1 `cat $PID`
|
||||
}
|
||||
|
||||
oldsig () {
|
||||
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
|
||||
}
|
||||
|
||||
run () {
|
||||
if [ "$(id -un)" = "$AS_USER" ]; then
|
||||
eval $1
|
||||
else
|
||||
su -c "$1" - $AS_USER
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
sig 0 && echo >&2 "Already running" && exit 0
|
||||
run "$CMD"
|
||||
;;
|
||||
stop)
|
||||
sig QUIT && exit 0
|
||||
echo >&2 "Not running"
|
||||
;;
|
||||
force-stop)
|
||||
sig TERM && exit 0
|
||||
echo >&2 "Not running"
|
||||
;;
|
||||
restart|reload)
|
||||
sig HUP && echo reloaded OK && exit 0
|
||||
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
||||
run "$CMD"
|
||||
;;
|
||||
upgrade)
|
||||
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
|
||||
then
|
||||
n=$TIMEOUT
|
||||
while test -s $OLD_PIN && test $n -ge 0
|
||||
do
|
||||
printf '.' && sleep 1 && n=$(( $n - 1 ))
|
||||
done
|
||||
echo
|
||||
|
||||
if test $n -lt 0 && test -s $OLD_PIN
|
||||
then
|
||||
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
|
||||
run "$CMD"
|
||||
;;
|
||||
reopen-logs)
|
||||
sig USR1
|
||||
;;
|
||||
*)
|
||||
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue