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
|
PROJECT = "oldhaven"
|
||||||
timeout 30 # restarts workers that hang for 30 seconds
|
|
||||||
|
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