Python gunicorn

Python学習【365日チャレンジ!】254日目のマスターU(@Udemy11)です。

寝不足で、頭痛がしてるにも関わらず、釣れてるところで釣れてる時間に釣れてる方法で釣る!という理念のもと、再びアオリイカを釣りに行ってきました。

どうやら釣りの神様はそんなに甘くないらしく、爆風と高波で釣りにならず。。。

とりあえずエギをキャストしてみたのですが、いきなり根がかりで、よく釣れるエギをロストしてしまいました。

あんまり調子に乗ったらダメですね。

それでは今日もPython学習を始めましょう。

昨日の復習

昨日は、Fabricでサーバーにアプリケーションをインストールするウォームアップをしました。

server1にlocalsでサーバーを2つ用意して、commonには共通で使用するツールをインストールするコードを書いて、webにはwebサーバーとして使うツールをインストールしました。

バージョンが古いようで、flaskのインストールでエラーが起こるので、とりあえずflaskのインストールコードは外して実行しました。

詳細については、昨日の記事を参考にしてみてください。

今日は、Fabricでサーバーにアプリケーションファイルと初期設定ファイルを作って、自動でサーバーにアプリケーションをインストールする予定でしたが、どうにもFlaskのインストールが上手くいかずにハマってしまったので、gunicornについて調べてみました。

gunicorn

gunicornは、私が受講している酒井先生の講座の説明では、ユニコーンと読んでいましたが、グニコーンと読んでしまいそうですよね。

そんなgunicornは、UNIXで使えるPython WSGI HTTP Serverです。

サーバーとアプリケーションをつなぐためのフレームワークをPythonで定義したものがWSGI(Web Server Gateway Interface)で、Python WSGI HTTP Serverは、Pythonで作ったWebアプリケーションをつなげることができるをWebサーバーということです。

gunicornがWebサーバーで、Flaskで作ったアプリケーションをつなぐってことです。

サーバーがありすぎて分かりづらい

Vagantで立ち上げたのがmainサーバーとsever1server2で、さらにroledefsを使って、commonwebを立ち上げましたし、さらにgunicornもサーバーなので、なかなか理解できないかもしれません。

サーバーというと、どうしても物理的なイメージを持ってしまうので、なかなか理解しづらいのですが、あくまでディスク上に作られた仮想サーバーなので、いくつも作ることができて、それらがそれぞれの役割をこなしていると考えれば理解は進むかもしれません。

メールサーバーとかWebサーバーとか、DNSサーバーとか、データベースサーバーなどの役割を物理的な一つのサーバー(PC)に構築している場合もありますし、一つの種類のサーバーだけをたくさん構築する場合もありますので、ほんとにサーバーはややこしいです。

あまり真剣に考えずに、そ〜なんだという感じで理解しておかないと考えだすと学習が進まないかもしれないので、自分の中で、ある程度サーバーのイメージが掴めたら、次のステップに進むようにしましょう。

まとめ

Flaskのインストールでハマってしまったので、一旦離れてgunicornを調べてみたら、ある程度はサーバーのことについて理解が進みました。

一日一歩、三日で三歩、三歩進んで二歩下がる

じゃないですが、そんな慌てて進む必要もないので、立ち止まってみることも大切ですね。

それでは明日もGood Python!