はじめに
論文検索アプリケーションをEC2にデプロイするという作業を始めて行いました。
WebアプリケーションフレームワークとしてGradioを用いており、ポート8080でアプリケーションが立ち上がるようになっていたのですが、アクセスする際にhttps://exmaple.com:8080
のようにポート番号を指定してアクセスしなければなりませんでした。
これはあまり好ましくなかったので、ポート番号を指定せずにアプリケーションにアクセスするためにリバースプロキシという手法を用いたのでその設定方法を簡単にまとめておきます。
EC2にNginxを導入する
EC2のマシンイメージとしてAmazon Linux 2023
を用いたのですが、今までのインストール方法ではなく次のようなコマンドでインストールします。
sudo dnf install nginx
(Amazon Linux 2023以前)
sudo amazon-linux-extras install nginx1
Nginxを起動しておきます。
sudo service nginx start
リバースプロキシの設定
ここからが本題になるのですが、上で立てたNginxのHTTPサーバのポート80で受け取ったリクエストを自分のアプリケーションに受け渡すようにします。
そのために設定ファイル/etc/nginx/nginx.conf
に以下を追加します。(アプリケーションのURLは任意で変更してください)
server {
...
location / {
proxy_pass http://0.0.0.0:8080/;
}
...
}
このように修正することで、ポート番号を指定せずにアプリケーションにアクセスできるようになります。