Apacheをmod_wsgiで構成するには、いくつかのステップが含まれます。
必要なパッケージをインストールする: mod_wsgi
ApacheモジュールとPythonとともに、Apache自体をインストールすることから始めます。正確なコマンドはオペレーティングシステムによって異なります。 Debian/ubuntuシステムの場合、通常は以下を使用します。
<code class="bash">sudo apt update sudo apt install apache2 libapache2-mod-wsgi-py3 python3-pip</code>
Pythonのインストールに必要に応じて、 python3-pip
とバージョン番号( python3.9-pip
など)を調整します。他のシステム(Centos/Rhel、HomebrewのあるMacosなど)では、適切なパッケージマネージャーコマンドを使用します。
WSGIアプリケーションの作成: WSGIアプリケーションを定義するPythonファイル( my_wsgi_app.py
など)が必要です。これは、Apacheがリクエストを処理するために使用する呼び出し可能なオブジェクトです。簡単な例:
<code class="python">def application(environ, start_response): status = '200 OK' output = b"Hello, World!\n" response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]</code>
Apacheの構成: mod_wsgi
を読み込み、WSGIアプリケーションに向けてApacheを構成する必要があります。これは、apache構成ファイル(通常は/etc/apache2/apache2.conf
または/etc/apache2/sites-available/000-default.conf
にあるか、システムに応じて同様の場所にある)を編集することによって行われます。 <virtualhost></virtualhost>
ブロック内で以下を追加または変更します。
<code class="apache"><virtualhost> ServerName your_domain_or_ip WSGIScriptAlias / /path/to/your/my_wsgi_app.py <directory> <files my_wsgi_app.py> Require all granted </files> </directory> </virtualhost></code>
/path/to/your/
with your my_wsgi_app.py
ファイルとyour_domain_or_ip
への実際のパスと、サーバーのドメイン名またはIPアドレスを使用してください。 Require all granted
指令は、スクリプトへのアクセスを許可します。生産には、より堅牢なセキュリティが必要です(以下を参照)。
Apacheを再起動: Apache構成ファイルを保存した後、Apacheを再起動して変更を適用します。
<code class="bash">sudo systemctl restart apache2</code>
一般的な落とし穴には以下が含まれます。
WSGIScriptAlias
または<directory></directory>
ディレクティブのタイプミスは、ApacheがWSGIアプリケーションを見つけることを防ぎます。あいまいさを避けるために、絶対パスを使用してください。mod_wsgi
)が、アプリケーションが使用するのと同じPythonバージョンに対してコンパイルされていることを確認してください。ミキシングバージョンは、クラッシュまたは予期しない動作を引き起こす可能性があります。<virtualhost></virtualhost>
ブロック内で構成を慎重に管理するか、競合を回避するために他のApacheディレクティブを使用してください。with
)を使用して、ファイルやその他のリソースを適切に閉じます。パフォーマンスの改善は、いくつかの戦略を通じて達成できます。
WSGIDaemonProcess
)を使用します。これにより、プロセスの作成のオーバーヘッドが大幅に減少し、応答性が向上します。これをApache構成ファイルで構成し、プロセスとスレッドの数を指定します。redis
やmemcached
などのライブラリを使用します。asyncio
などの非同期プログラミングフレームワークを使用して、同時性とスループットを改善することを検討してください。アプリケーションを保護するには、いくつかの重要な手順が必要です。
.htaccess
ファイル、指令Allow
およびDeny
)を使用して、特定のディレクトリとファイルへのアクセスを制限します。機密ファイルやディレクトリを直接Webに公開しないでください。プレースホルダーの値(パス、ドメイン名)を実際の構成の詳細に置き換えることを忘れないでください。生産に展開する前に、ステージング環境で常に変更を徹底的にテストしてください。
以上がmod_wsgiを使用してpythonで動作するようにApacheを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。