「CGI」と「uWSGI」について

投稿者: Anonymous

PythonをWeb上で、下記何れかの方法により動作させようと思っているのですが

・Nginx、CGI、Python
・Nginx、uWSGI、Python

Q1.CGIを選択するメリットについて
・何かありますか?
・手軽に実装できることぐらい?
・性能的にwsgiより劣るわけではない??


Q2.wsgiについて
・Pythonに特化したインターフェース定義ですか?
・それとも、CGIに代わる新たな接続標準仕様?
・CGIが古いというわけではない??


Q3.uWSGIについて
・wsgi規格のインターフェースを実装したもの?
・Nginxで使用できるwsgiは他にもありますか?
・uWSGIは、Nginxに特化しているわけではない??


環境
・CentOS
・Nginx

解決

Q1.CGIを選択するメリットについて
・何かありますか?

http通信を理解する、勉強するために題材にすることはあります。
それくらい、生のhttp通信に近い仕組みです。

・手軽に実装できることぐらい?

手軽とは言いがたいと思います。
生のhttp通信に近いことしか実装しないのであれば手軽かもしれません。

・性能的にwsgiより劣るわけではない??

生のhttp通信に近いため、セキュリティの考慮や多くのことを望まなければ、処理が少なくて済むため、高速かもしれません。

Q2.wsgiについて
・Pythonに特化したインターフェース定義ですか?

はい。

・それとも、CGIに代わる新たな接続標準仕様?

いいえ。
しかし、PythonのWSGIを参考にPerl用のPSGI、Ruby用のRackが開発されたそうです。

・CGIが古いというわけではない??

産まれてからの経過年数はWSGIよりも古いです。

Q3.uWSGIについて
・wsgi規格のインターフェースを実装したもの?

はい。
uWSGIは比較するならGunicornなどのWebアプリケーションサーバーと比較した方がよいでしょう。
uWSGIははじめはWSGIプロトコルに対応した高機能なWebアプリケーションサーバーとして作られましたが、現在はWSGIだけでなくPSGIやRackも扱えます。

・Nginxで使用できるwsgiは他にもありますか?
・uWSGIは、Nginxに特化しているわけではない??

uWSGIはNginx用というわけではありません。Webアプリケーションサーバーです。
uWSGIを使っていても、NginxやApache等のWebサーバーを前段に配置するのが一般的です。
前段のWebサーバー(Nginx等)とWebアプリケーションサーバー(uWSGIやGunicorn等)はリバースプロキシ等で通信します。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *