Unyablog.

のにれんのブログ

DjangoとuWSGIとnginx

最近djangoをさわってて、チュートリアルが終わってとりあえずnonylenetに出そうとしたけど、pythonを動かすためのサーバーがいるらしい。

見てみたところuWSGIが良いとのことで、uWSGIをpipからインストールしてみたところなかなかうまくいってよかったのだけれど、多少困ったところがあったのでメモ

サブディレクトリに走らせたい

nginxの設定でサブディレクトリにのみdjangoに飛ぶようにしたけれど、djangoに渡されるURLがサブディレクトリの名前を含むものになっててURLがうまく検知されない(当たり前ですね)。 だからdjangoに渡すURLをサブディレクトリをカットしたものにしようかと考えてrewriteを使ったけど、そしたらページリンクがうまく行かなくなる(これも当たり前だった)。

結局djangoのurl.pyをサブディレクトリ含めたものに変えることにしました。

uWSGIのinitがない

djangoのページ見ると最新版入れてくれって書いてあったのでpipで入れたのだけれど、それだとinit.dのrcスクリプトが入ってこない。

upstartを使っても良かったのだけれど、やっぱりdebianだしinit.dのほうが良いだろうなあと思ってここを参考にinit.dを自分で書いた。まあ動作したし大丈夫そう。

チュートリアルでつくってたやつだとCSSが動かない

staticファイルの生成されるリンクの場所にCSSがないからです。staticリンクをnginxの設定でCSSファイルのある場所にaliasを貼ったら普通に表示されるようになるけどなんだかなあ…って思ってたら、 collectstaticっていう機能があって、staticファイルを全部指定したディレクトリに集めてくれた。ここの下の方を参考に。

あと、projectファイル直下にもstaticフォルダを作らないのエラーがでたので注意。


少なくともraspi2ではdjangoは快適。なんかuWSGIのrestartが遅いけどまあいいでしょう。