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 | ||||
| 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 | ||||
|  | ||||
							
								
								
									
										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