Python Webプログラムの9つの導入方法まとめ
Python には多くの Web 開発フレームワークがあります。コードを作成した後は、デプロイと起動が重要です。一般的に、Web アプリケーションは 3 層構造の Web サーバー ---->アプリケーション -----> です。サーバー
主流の Web サーバーは、Apache、lighttpd、nginx、iis
アプリケーションと数えられます。中国語名はアプリケーション サービスと呼ばれ、特定の Web フレームワークに基づいて作成するアプリケーション コードです。 Web開発では一般にストレージサービスを指しますが、近年ではWebサイト規模の拡大に伴い、Webサーバーのフロントに配置されるMemcacheやRedisなどのキーバリューストレージも普及しています。 . Web サーバーは静的ファイルを効率的に処理し、IO とファイル転送を最適化してネイティブ関数を開発および呼び出します
単純なネットワーク ファイアウォールとして機能し、いくつかの IP をダンプしたり、同時接続数を制御したりすることができます。何もしないよりは良いです
高い同時実行性の短いメッセージの処理 接続リクエストは、イントラネット上の数十の長い接続を介して何千ものユーザーのリクエストを転送します。その理由の 1 つは、Web サーバーが高い同時性を処理するのに非常に優れているためです。ほとんどのアプリケーションで使用されるフレームワークには、高い同時実行性を処理する機能が備わっていません
実際、市場の一部の Web フレームワークは、epoll/ などの効率的なネットワーク ライブラリのサポートが組み込まれているため、高い同時性を処理する機能を備えています。 kqueue (Python の tornado、Java ベースの Tomcat、jetty など)。フロントエンド Web サーバーを削除して裸で実行する人もいます。ただし、この 2 つの理由から、パブリック ネットワーク アプリケーションを展開する場合は、これを行わないことをお勧めします。上記の理由から、ユーザーのブラウザから Web サーバーまでのネットワーク状態はあらゆる種類の奇妙であり、使用できません。 ご想像のとおり、
Web サーバーは 3 つの理由から nginx の使用を強くお勧めします
優れたパフォーマンスと非常に安定した
簡単な操作インストールと依存パッケージはほとんどありませんconf ファイルの設定は非常に簡単で、apache/lighttpd よりも簡単です
Python で開発された Web プログラムをデプロイします 9 つのメソッドがあります
mod_python (Apache の組み込みモジュール) に大きく依存します。 Python のバージョン mod_python は、apache での使用は推奨されていません。nginx は cgi をサポートしていません。これは、lighttpd または apache
fastcgi を使用する方法です。現在最も一般的な方法は、flup モジュールでサポートされています。これは、lighttpd インストール パッケージに含まれている fastcgi_pass
spawn-fcgi という構成命令です。違いは、flup は Python コード レベルで導入され、spawn-fcgi は外部プログラムであることです。 spawn-fcgi は非常に多用途であり、php、python、perl などのあらゆる言語で開発されたコードをサポートできます。コードが fastcgi インターフェイスを実装している限り、プロセスの管理に役立ちます。正式名は
scgi です。シンプルな共通ゲートウェイインターフェイス。scgi プロトコルは非常にシンプルですが、nginx の対応する設定コマンドは scgi_pass です。必要に応じて、Flup もサポートします。
http、nginx は proxy_pass 転送を使用します。これには、バックエンド アプリケーションに高い同時実行性を処理できる組み込みの http サーバーが必要です。Python プログラマーは発明を好みます。ホイール、トルネードは Web フレームワークだけでなく、独自に高性能な http サーバーも提供できるため、ボトルなどの他の Python フレームワークを使用してコードを作成することもできます。 -tornado をインポートすることでパフォーマンス http サーバーを使用することもできます。プロトコルは nginx と一緒にデプロイされます。さらに詳しく見ると、Python パッケージには gevent など、高い同時実行性を処理できる http サーバーが多数あり、http デプロイメントをサポートするために他のフレームワークから参照することもできます。
実際には、Javaを使用してWebプログラムを作成する場合、通常、アプリケーションサーバーはTomcatまたはjetty
uwsgiを選択します。これは、
uwsgiプロトコル
Webサーバー組み込みサポートプロトコルの4つの部分で構成されます。モジュールアプリケーション サーバー プロトコル サポート モジュール
プロセス制御プログラムnginx には、0.8.4 以降、uwsgi プロトコルのサポートが組み込まれており、4 バイトのヘッダーと本体をパッケージにすることができます。 http、cgi などの多くのプロトコル (ヘッダー フィールド内でマークされています) を使用して小規模なパフォーマンス比較テストを行ったことがありますが、その結果は、fastcgi と比較して、uwsgi に明らかなパフォーマンス上の利点がないことを示しています。データセットが小さい理由は、プロセス制御プログラムが付属しており、実際には spawn-fcgi/php-fpm に似た natvie 関数を使用していることです。したがって、uwsgi は、(Python、lua、ruby、erlang、go) などを含むさまざまなアプリケーション フレームワークをサポートできます。 uwsgi に似たツールである Gunicorn は、rails デプロイメント ツール (Unicorn) から移植されています。ただし、使用するプロトコルは WSGI で、正式名は Python Web サーバー ゲートウェイ インターフェイスであり、python2.5 で定義された公式標準 (PEP 333) です。これには適切なルーツがあり、http://gunicorn を導入するのは比較的簡単です。 org/ 詳細なチュートリアルがありますmod_wsgi、WSGI プロトコルもサポートする Apache のモジュール、https://code.google.com/p/modwsgi/
fastcgi プロトコルと http プロトコルの長所と短所の比較コードのデプロイメント
fastcgi はバイナリ プロトコルですが、http プロトコルと比較してリソースを節約しません。バイナリ プロトコルは、1234567 などの数値表現のみを保存できます。文字列として表現するには 7 バイト、数値として表現するには 4 バイトかかります。文字列はどこでも同じです
fastcgi がデータを送信するとき、 CGI プロトコルと互換性があること。また、大量の CGI 環境変数を用意する必要があるため、http プロトコルと比較すると、fastcgi を使用してデータを送信するのは経済的ではなく、より高価です
fastcgi の唯一の利点は、 Fastcgi は、バックエンド アプリケーションに転送するために 10 個のリンクを使用するだけで、必要なだけ指定でき、1000 個のリクエストが開始されます。問題は、ローカルで新しい接続を作成すると、TCP プロトコル スタックでポートが int16 になるためです。最大 65536 のポートを消費します。何十万もの外部同時リクエストにより、ポートプールが枯渇し、サーバーは応答を拒否することしかできません
概要
私の個人的な習慣は、Python プログラムをデプロイするために fastcgi プロトコルを使用することです。これはシンプルで問題がありません。技術的なソリューションを選択する場合は、最も単純で最も一般的なものを選択してください。このブログの fastcgi 実行スクリプトは次のとおりです
kill - `cat / tmp / django.pid` echo 'restart django....' python . / manage.py runfcgi - - settings = lutaf.settings_r maxchildren = maxspare = minspare = method = prefork pidfile = / tmp / django.pid host = 127.0 . 0.1 port = outlog = / tmp / dj.out errlog = / tmp / dj.error
皆さんも Gunicorn を試してみることをお勧めします。これが今後の開発の方向性です
以上がPython Webプログラムの9つの導入方法まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。
