Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Submit Search
Django deploy
•
4 likes
•
1,486 views
Andy Dai
Follow
My talk about Django Deployment
Read less
Read more
1 of 45
Download now
More Related Content
Django deploy
1.
Deploying Django Andy@Django Workshop 2013/8/6 1 13年8月6⽇日星期⼆二
2.
好不容易把網站寫好 了,終於要放上去... 2 13年8月6⽇日星期⼆二
3.
這還不簡單 3 13年8月6⽇日星期⼆二
4.
4 13年8月6⽇日星期⼆二
5.
4 • 買一台VPS 或實體機器 13年8月6⽇日星期⼆二
6.
4 • 買一台VPS 或實體機器 •
DNS 指好 13年8月6⽇日星期⼆二
7.
4 • 買一台VPS 或實體機器 •
DNS 指好 • python manage.py runserver 13年8月6⽇日星期⼆二
8.
4 • 買一台VPS 或實體機器 •
DNS 指好 • python manage.py runserver • 開啟 http://xxx.com:8000 13年8月6⽇日星期⼆二
9.
5 打完收工!開始賺錢! 13年8月6⽇日星期⼆二
10.
6 13年8月6⽇日星期⼆二
11.
7 13年8月6⽇日星期⼆二
12.
8 來!跟著我做! 13年8月6⽇日星期⼆二
13.
TURN OFF DEBUG 9 13年8月6⽇日星期⼆二
14.
你不會想讓使用者看到這些 10 13年8月6⽇日星期⼆二
15.
也不會想讓使用者看到這些.. 11 13年8月6⽇日星期⼆二
16.
IMPLEMENT 404 &
500 否則... 12 13年8月6⽇日星期⼆二
17.
13 報告學長,完全沒有畫面 13年8月6⽇日星期⼆二
18.
SET UP ERROR ALERTS 14 13年8月6⽇日星期⼆二
19.
DON’T USE SQLITE 15 13年8月6⽇日星期⼆二
20.
Web Server 的選擇 16 •
Apache 系 • 務必使用 mod_wsgi • 不過如果非不得已的話別自找麻煩... • nginx 系 • nginx + gunicorn • nginx + uwsgi 13年8月6⽇日星期⼆二
21.
nginx + gunicorn 17 13年8月6⽇日星期⼆二
22.
gunicorn 18 • http://gunicorn.org/ • Gunicorn
'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre- fork worker model ported • 總之就是一個效能很好的 wsgi web server 13年8月6⽇日星期⼆二
23.
• pip install
gunicorn • gunicorn project.wsgi:application -b 0.0.0.0:$PORT -w $NUM_WORKERS 19 13年8月6⽇日星期⼆二
24.
20 #!/bin/bash set -e LOGFILE=/home/ubuntu/project/log/gunicorn.log LOGDIR=$(dirname $LOGFILE) NUM_WORKERS=5 USER=ubuntu GROUP=ubuntu cd
/home/ubuntu/project source /home/ubuntu/.virtualenvs/project/bin/activate test -d $LOGDIR || mkdir -p $LOGDIR exec /home/ubuntu/.virtualenvs/project/bin/home/ubuntu/.virtualenvs/project/bin/ gunicorn_django -w $NUM_WORKERS --user=$USER --group=$GROUP --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE An example of run.sh 13年8月6⽇日星期⼆二
25.
21 用 supervisor 來管
process [program:project] directory = /home/ubuntu/project/ user = ubuntu command = /home/ubuntu/project/run.sh stdout_logfile = /home/ubuntu/project/log/logfile_std.log stderr_logfile = /home/ubuntu/project/log/logfile_err.log 13年8月6⽇日星期⼆二
26.
Usage • sudo supervisorctl
update • sudo supervisorctl status project • sudo supervisorctl stop project • sudo supervisorctl start project • sudo supervisorctl restart project 22 13年8月6⽇日星期⼆二
27.
NGINX 23 13年8月6⽇日星期⼆二
28.
nginx 是啥... 24 • 基本上是個
light-weight web server • Serve static/media files • 記得 python manage.py collectstatic • 當做 Reversed proxy 用 13年8月6⽇日星期⼆二
29.
nginx.conf 25 server { listen 80; ... location
/media/ { autoindex off ; root /path/to/your/media/file ; } location /static/ { autoindex off; root /path/to/your/static/file ; } location / { .... proxy_pass http://0.0.0.0:8000/; } } 13年8月6⽇日星期⼆二
30.
恭喜!結束了... 26 13年8月6⽇日星期⼆二
31.
不過是不是漏了什麼 27 13年8月6⽇日星期⼆二
32.
網站是會更新的! 28 13年8月6⽇日星期⼆二
33.
29 • 重新打包上傳一次 • use
git or mercurial • git pull 搞定一切 • 不過還是得要 ssh 登入之後做一堆事情 13年8月6⽇日星期⼆二
34.
30 USE fabric! 13年8月6⽇日星期⼆二
35.
SCALING 31 13年8月6⽇日星期⼆二
36.
32 13年8月6⽇日星期⼆二
37.
32 13年8月6⽇日星期⼆二
38.
32 13年8月6⽇日星期⼆二
39.
不過其實你可以不用 那麼辛苦 33 13年8月6⽇日星期⼆二
40.
34 • Media Server •
S3 • CDN • Database Server • Amazon RDS • Google Cloud SQL • Heroku Postgresql 13年8月6⽇日星期⼆二
41.
• Heroku • Openshift •
dotCloud • AWS Elastic Beanstalk 35 如果你有 $$,其實你真的不用 那麼辛苦 13年8月6⽇日星期⼆二
42.
Django deploy 有點麻 煩,剛開始學習用 PaaS
就好 36 13年8月6⽇日星期⼆二
43.
如果你 $$ 夠多,那麼 或許你也用
PaaS 就好 37 13年8月6⽇日星期⼆二
44.
Reference • http://michal.karzynski.pl/blog/2013/06/09/ django-nginx-gunicorn-virtualenv- supervisor/ • https://devcenter.heroku.com/articles/ django •
http://www.google.com 38 13年8月6⽇日星期⼆二
45.
一些好用的東西 • Sentry https://getsentry.com/ •
Newrelic http://newrelic.com/ • Papertrail https://papertrailapp.com/ • Amazon SES http://aws.amazon.com/ses/ 39 13年8月6⽇日星期⼆二
Download