Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
nginx + unicorn + padrino on ubuntu
# sudo ln -s ~/nginx.conf unicorn.conf
upstream app_server {
server unix:/tmp/unicorn_padrino.sock fail_timeout=0;
}
server {
listen 80;
charset utf-8;
server_name db.innshine.com;
keepalive_timeout 5;
root /home/innshine/one/public;
access_log /home/innshine/one/log/nginx_access.log;
error_log /home/innshine/one/log/nginx_error.log;
rewrite_log on;
location ~* ^/(images|javascripts|stylesheets|img)/ {
access_log off;
log_not_found off;
expires max;
break;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
}
#!/bin/sh
# rvm wrapper ruby-1.9.3-p194 bootup
UNICORN=/home/innshine/.rvm/bin/bootup_unicorn
CONFIG_FILE=/home/innshine/one/config/unicorn.rb
APP_HOME=/home/innshine/one
case "$1" in
start)
$UNICORN -c $CONFIG_FILE -E production -D
;;
stop)
kill -QUIT `cat /tmp/unicorn_padrino.pid`
;;
restart|force-reload)
kill -USR2 `cat /tmp/unicorn_padrino.pid`
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
:
# -*- encoding: utf-8 -*-
root_path = File.expand_path '../', File.dirname(__FILE__)
# 日志
log_file = root_path + '/log/unicorn.log'
err_log = root_path + '/log/unicorn_error.log'
# 进程标识
pid_file = '/tmp/unicorn_padrino.pid'
old_pid = pid_file + '.oldbin'
# 通道
socket_file = '/tmp/unicorn_padrino.sock'
worker_processes 6
working_directory root_path
timeout 30
# 侦听
listen 8080, tcp_nopush: false
listen socket_file, backlog: 1024
pid pid_file
stderr_path err_log
stdout_path log_file
preload_app true
before_exec do |server|
ENV['BUNDLE_GEMFILE'] = root_path + '/Gemfile'
end
before_fork do |server, worker|
if File.exists?(old_pid) && server.pid != old_pid
begin
Process.kill('QUIT', File.read(old_pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
puts "Send 'QUIT' signal to unicorn error!"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.