目次
Nginxを使用してFastAPIアプリケーションをサブディレクトリ経由で利用可能にする方法を紹介します。
基本的にはUbuntu環境(またはおそらくその他のLinux環境)で、nginx(systemdへの登録済み)とFastAPIが既にインストールされていると仮定しています。
Nginxのロケーションファイルの変更
FastAPIアプリケーションをサブディレクトリから利用可能にするためには、まずnginxの設定を調整する必要があります。
Nginxのロケーションファイルは通常、etc/nginx/sites-available/default
に配置されています。
このファイルを編集し、FastAPIアプリケーションへのルーティングを設定します。
以下は、そのための設定の例です(必要なところ以外は省略してます)。
server {
location / {
}
location /subdirectory_name/ {
proxy_pass http://localhost:8000;
}
}
この設定では、/subdirectory_name/
というパスへのリクエストが、localhost:8000
(FastAPIアプリケーションがデフォルトで稼働しているアドレス)にプロキシされます。
/subdirectory_name/
は、利用したいドメインの状況に応じて適宜変更してください。
設定を反映させるためには、nginxを再起動する必要があります。以下のコマンドを実行してください:
sudo systemctl restart nginx
FastAPIのroot-pathの変更
Nginxの設定を変更した後、FastAPI側の設定も調整する必要があります。
これには、FastAPIアプリケーションが起動されているPythonファイル(通常はmain.py
)にroot_path
を指定することが含まれます。
main.py
ファイルを以下のように編集してください(必要なところ以外は省略してます)。
import FastAPI
app = FastAPI(root_path='/subdirectory_name')
ここで、root_path
には先ほどnginxの設定で使用したサブディレクトリのパスを指定します。
これにより、FastAPIアプリケーションが正しいパスでリクエストを受け取ることができるようになります。
これらの変更を行った後、FastAPIアプリケーションを起動すれば、指定したサブディレクトリからAPIにアクセスできるようになるはずです。