Nginx and Unicorn configs
This commit is contained in:
		
							parent
							
								
									1e19b8f2ca
								
							
						
					
					
						commit
						df0e71225f
					
				
							
								
								
									
										27
									
								
								config/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								config/nginx.conf
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
|  | |||||||
							
								
								
									
										85
									
								
								config/unicorn.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								config/unicorn.sh
									
									
									
									
									
										Normal file
									
								
							| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user