Skip to content

Instantly share code, notes, and snippets.

@postrational
Last active April 4, 2024 12:48

Revisions

  1. postrational revised this gist Aug 8, 2014. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -27,5 +27,6 @@ exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
    --name $NAME \
    --workers $NUM_WORKERS \
    --user=$USER --group=$GROUP \
    --bind=unix:$SOCKFILE \
    --log-level=debug \
    --bind=unix:$SOCKFILE
    --log-file=-
  2. postrational revised this gist Jul 16, 2014. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion hello.conf
    Original file line number Diff line number Diff line change
    @@ -2,4 +2,5 @@
    command = /webapps/hello_django/bin/gunicorn_start ; Command to start app
    user = hello ; User to run as
    stdout_logfile = /webapps/hello_django/logs/gunicorn_supervisor.log ; Where to write log messages
    redirect_stderr = true ; Save stderr in the same log
    redirect_stderr = true ; Save stderr in the same log
    environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8 ; Set UTF-8 as default encoding
  3. postrational revised this gist Oct 30, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion hello.conf
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    [program:hello]
    command = /webapps/hello_django/bin/gunicorn_start ; Command to start app
    user = michal ; User to run as
    user = hello ; User to run as
    stdout_logfile = /webapps/hello_django/logs/gunicorn_supervisor.log ; Where to write log messages
    redirect_stderr = true ; Save stderr in the same log
  4. postrational revised this gist Oct 30, 2013. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -3,13 +3,13 @@
    NAME="hello_app" # Name of the application
    DJANGODIR=/webapps/hello_django/hello # Django project directory
    SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using this unix socket
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    USER=hello # the user to run as
    GROUP=webapps # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello.settings # which settings file should Django use
    DJANGO_WSGI_MODULE=hello.wsgi # WSGI module name

    echo "Starting $NAME"
    echo "Starting $NAME as `whoami`"

    # Activate the virtual environment
    cd $DJANGODIR
  5. postrational revised this gist Aug 21, 2013. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@ USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello.settings # which settings file should Django use

    DJANGO_WSGI_MODULE=hello.wsgi # WSGI module name

    echo "Starting $NAME"

    @@ -23,7 +23,7 @@ test -d $RUNDIR || mkdir -p $RUNDIR

    # Start your Django Unicorn
    # Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
    exec ../bin/gunicorn_django \
    exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
    --name $NAME \
    --workers $NUM_WORKERS \
    --user=$USER --group=$GROUP \
  6. postrational revised this gist Jul 15, 2013. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions hello.nginxconf
    Original file line number Diff line number Diff line change
    @@ -16,12 +16,12 @@ server {
    access_log /webapps/hello_django/logs/nginx-access.log;
    error_log /webapps/hello_django/logs/nginx-error.log;

    location /static {
    root /webapps/hello_django/hello/static/;
    location /static/ {
    alias /webapps/hello_django/static/;
    }

    location /media {
    root /webapps/hello_django/hello/media/;
    location /media/ {
    alias /webapps/hello_django/media/;
    }

    location / {
    @@ -59,6 +59,6 @@ server {
    # Error pages
    error_page 500 502 503 504 /500.html;
    location = /500.html {
    root /webapps/hello_django/hello/static/;
    root /webapps/hello_django/static/;
    }
    }
  7. postrational revised this gist Jul 14, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion hello.nginxconf
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@ upstream hello_app_server {
    server {

    listen 80;
    server_name django.hyperwidgets.com;
    server_name example.com;

    client_max_body_size 4G;

  8. postrational revised this gist Jul 8, 2013. 1 changed file with 7 additions and 7 deletions.
    14 changes: 7 additions & 7 deletions gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    #!/bin/bash

    NAME="hello_app" # Name of the application
    DJANGODIR=/webapps/hello_django/hello # Django project directory
    SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using this unix socket
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello_django.settings # which settings file should Django use
    NAME="hello_app" # Name of the application
    DJANGODIR=/webapps/hello_django/hello # Django project directory
    SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using this unix socket
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello.settings # which settings file should Django use


    echo "Starting $NAME"
  9. postrational revised this gist Jul 1, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@ SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using t
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello_django.hello_dev # which settings file should Django use
    DJANGO_SETTINGS_MODULE=hello_django.settings # which settings file should Django use


    echo "Starting $NAME"
  10. postrational revised this gist Jun 21, 2013. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -6,13 +6,16 @@ SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using t
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
    DJANGO_SETTINGS_MODULE=hello_django.hello_dev # which settings file should Django use


    echo "Starting $NAME"

    # Activate the virtual environment
    cd $DJANGODIR
    source ../bin/activate
    export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
    export PYTHONPATH=$DJANGODIR:$PYTHONPATH

    # Create the run directory if it doesn't exist
    RUNDIR=$(dirname $SOCKFILE)
  11. postrational created this gist Jun 10, 2013.
    28 changes: 28 additions & 0 deletions gunicorn_start.bash
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    #!/bin/bash

    NAME="hello_app" # Name of the application
    DJANGODIR=/webapps/hello_django/hello # Django project directory
    SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using this unix socket
    USER=michal # the user to run as
    GROUP=michal # the group to run as
    NUM_WORKERS=3 # how many worker processes should Gunicorn spawn


    echo "Starting $NAME"

    # Activate the virtual environment
    cd $DJANGODIR
    source ../bin/activate

    # Create the run directory if it doesn't exist
    RUNDIR=$(dirname $SOCKFILE)
    test -d $RUNDIR || mkdir -p $RUNDIR

    # Start your Django Unicorn
    # Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
    exec ../bin/gunicorn_django \
    --name $NAME \
    --workers $NUM_WORKERS \
    --user=$USER --group=$GROUP \
    --log-level=debug \
    --bind=unix:$SOCKFILE
    5 changes: 5 additions & 0 deletions hello.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    [program:hello]
    command = /webapps/hello_django/bin/gunicorn_start ; Command to start app
    user = michal ; User to run as
    stdout_logfile = /webapps/hello_django/logs/gunicorn_supervisor.log ; Where to write log messages
    redirect_stderr = true ; Save stderr in the same log
    64 changes: 64 additions & 0 deletions hello.nginxconf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    upstream hello_app_server {
    # fail_timeout=0 means we always retry an upstream even if it failed
    # to return a good HTTP response (in case the Unicorn master nukes a
    # single worker for timing out).

    server unix:/webapps/hello_django/run/gunicorn.sock fail_timeout=0;
    }

    server {

    listen 80;
    server_name django.hyperwidgets.com;

    client_max_body_size 4G;

    access_log /webapps/hello_django/logs/nginx-access.log;
    error_log /webapps/hello_django/logs/nginx-error.log;

    location /static {
    root /webapps/hello_django/hello/static/;
    }

    location /media {
    root /webapps/hello_django/hello/media/;
    }

    location / {
    # an HTTP header important enough to have its own Wikipedia entry:
    # http://en.wikipedia.org/wiki/X-Forwarded-For
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # enable this if and only if you use HTTPS, this helps Rack
    # set the proper protocol for doing redirects:
    # proxy_set_header X-Forwarded-Proto https;

    # pass the Host: header from the client right along so redirects
    # can be set properly within the Rack application
    proxy_set_header Host $http_host;

    # we don't want nginx trying to do something clever with
    # redirects, we set the Host: header above already.
    proxy_redirect off;

    # set "proxy_buffering off" *only* for Rainbows! when doing
    # Comet/long-poll stuff. It's also safe to set if you're
    # using only serving fast clients with Unicorn + nginx.
    # Otherwise you _want_ nginx to buffer responses to slow
    # clients, really.
    # proxy_buffering off;

    # Try to serve static files from nginx, no point in making an
    # *application* server like Unicorn/Rainbows! serve static files.
    if (!-f $request_filename) {
    proxy_pass http://hello_app_server;
    break;
    }
    }

    # Error pages
    error_page 500 502 503 504 /500.html;
    location = /500.html {
    root /webapps/hello_django/hello/static/;
    }
    }