Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deploying Django
Search
Brian Riley
February 22, 2012
860
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Deploying Django
Presenting my setup at LA Django Meetup Feb. 21, 2012.
Brian Riley
February 22, 2012
More Decks by Brian Riley
See All by Brian Riley
Python for the Ruby Programmer
brianriley
0
230
Debugging your gunicorns
brianriley
2
170
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
380
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Chasing Engaging Ingredients in Design
codingconduct
0
270
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
910
GraphQLとの向き合い方2022年版
quramy
50
15k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Statistics for Hackers
jakevdp
799
230k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Transcript
DEPLOYING DJANGO Brian Riley @btriley
DEPLOYING DJANGO or, you could just use Heroku Brian Riley
@btriley
WHO AM I? • been working with Django since 2006
• put Django into production many times, using just about every setup • work at EdgeCast
DEPLOYING IS CONFUSING • gunicorn or uwsgi • nginx or
apache • ? or ? or, you could just use Heroku
THE STACK
THE STACK: WEB SERVER • serving static media files •
proxying to dynamic applications “nginx is an HTTP and reverse proxy server”
NGINX CONF server { listen 80 default; server_name example.com; location
/static/ { root /path/to/project; } location / { proxy_pass http://127.0.0.1:8000; } }
THE STACK: WSGI SERVER “Gunicorn 'Green Unicorn' is a Python
WSGI HTTP Server for UNIX” ./manage.py run_gunicorn
UPSTART • comes with Ubuntu • automates startup/shutdown of processes
• use to manage your gunicorn service: service gunicorn [start | stop | restart]
description "Gunicorn for my Django application" start on runlevel [2345]
stop on runlevel [!2345] #Send KILL after 5 seconds kill timeout 5 respawn env PROJECT_ROOT="/opt/my_django_app" script exec python $PROJECT_ROOT/portal/manage.py run_gunicorn -- settings=settings.production --preload -w 16 --log-level debug --log- file /var/log/my_django_app/gunicorn.log -p /var/run/gunicorn.pid end script /etc/init/gunicorn.conf
AUTOMATION: FABRIC • command-line tool for running remote shell commands
• fab deploy
QUESTIONS? @btriley yes, you could just use Heroku