Created
January 13, 2012 15:49
-
-
Save joequery/1607063 to your computer and use it in GitHub Desktop.
Convient bash functions for managing nginx and Unicorn
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Kill and restart nginx | |
function restart_nginx(){ | |
pids=$(pidof nginx) | |
if [[ -n $pids ]]; | |
then | |
sudo kill -9 $pids | |
sudo service nginx restart | |
fi | |
} | |
# Kill unicorn | |
function kill_unicorn(){ | |
ps aux | grep 'unicorn' | awk '{print $2}' | xargs sudo kill -9 | |
} | |
# test unicorn process | |
function test_unicorn(){ | |
# If config/unicorn.rb doesn't exist, don't bother running anything. | |
unicornFile=config/unicorn.rb | |
if [ ! -e $unicornFile ]; | |
then | |
echo "Unicorn file not found" | |
else | |
echo "Starting unicorn..." | |
bundle exec unicorn_rails -c $unicornFile -E production | |
fi | |
} | |
# run unicorn process as a daemon | |
function start_unicorn(){ | |
# If config/unicorn.rb doesn't exist, don't bother running anything. | |
unicornFile=config/unicorn.rb | |
if [ ! -e $unicornFile ]; | |
then | |
echo "Unicorn file not found" | |
else | |
bundle exec unicorn_rails -c $unicornFile -E production -D | |
fi | |
} | |
# Create a symbolic link to a config file in the sites-enabled dir | |
# arg1: basename of config file in sites-available dir | |
# Ex: 'nginx_enable railsapp1.com' | |
function nginx_enable(){ | |
confFile=$1 | |
fullFilePath=/etc/nginx/sites-available/$confFile | |
symLinkPath=/etc/nginx/sites-enabled/$confFile | |
# First test to see that the file exists | |
if [ ! -e $fullFilePath ] | |
then | |
printf "%s not found..." "$fullFilePath" | |
printf "Aborted!\n" | |
else | |
# If symlink already exists, delete it so the new configuration | |
# will take effect. | |
if [ -e $symLinkPath ] | |
then | |
printf "Old symbolic link removed...\n" | |
sudo rm $symLinkPath | |
fi | |
sudo ln -s $fullFilePath $symLinkPath | |
# Confirm the symlink was created | |
if [ -e $symLinkPath ] | |
then | |
printf "$confFile enabled.\n" | |
fi | |
fi | |
} | |
# Destroy a symbolic link in the sites-enabled directory. | |
# arg1: basename of symbolic link to | |
# Ex: 'nginx_disable railsapp1.com' | |
function nginx_disable(){ | |
symLink=$1 | |
symLinkPath=/etc/nginx/sites-enabled/$symLink | |
# First test to see that the link exists | |
if [ ! -e $symLinkPath ] | |
then | |
printf "$symLink is not currently enabled. Exiting.\n" | |
else | |
# If the link does exist, delete it. | |
sudo rm $symLinkPath | |
# Confirm the symlink was destroyed | |
if [ ! -e $symLinkPath ] | |
then | |
printf "$symLink disabled.\n" | |
fi | |
fi | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You may add here your
server {
...
}
statements for each of your virtual hosts to this file
upstream raquelhernandez {
server unix:/home/raquel/raquelhernandez/current/tmp/sockets/unicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name raquelhernandez.net;
root /home/raquel/raquelhernandez/current/public;
location / {
try_files $uri @RaquelHernandez;
}
location ~ (.php|.aspx|.asp|myadmin|php-cgi|php5|cgi-bin) {
return 404;
}
location @RaquelHernandez {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://raquelhernandez;
}
}
You should look at the following URL's in order to grasp a solid understanding
of Nginx configuration files in order to fully unleash the power of Nginx.
http://wiki.nginx.org/Pitfalls
http://wiki.nginx.org/QuickStart
http://wiki.nginx.org/Configuration
Generally, you will want to move this file somewhere, and start with a clean
file but keep this around for reference. Or just disable in sites-enabled.
Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
}
another virtual host using mix of IP-, name-, and port-based configuration
server {
listen 8000;
listen somename:8080;
server_name somename alias another.alias;
root html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
HTTPS server
server {
listen 443;
server_name localhost;
root html;
index index.html index.htm;
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ =404;
}
}