インスタンスでNginxを使って簡単にデプロイする

ローカルのマシンで

python3 -m http.server 5000

をやると5000番ポートにサーバーを立てることができる。

ブラウザでlocalhost:5000を見てみるとディレクトリにあるファイルが一覧で見れる。

さて、これをインスタンスでも同じことをやろうと思う。

まず、インスタンスを簡単に準備する。

f:id:komi1230:20200628174540p:plain
インスタンスSSHで接続

自分はGCPでCompute Engineを使って用意した。

とりあえずPythonをインストールする。

sudo apt install python3

これでできたあと、Pythonでローカルサーバーを立てる。

python3 -m http.server 5000

結論から言うと、このままだとブラウザで http://[外向けIP]としてもアクセスできない。

このアドレスにアクセスできるようにNginxを利用する。

まずNginxをインストールする。

sudo apt install nginx

このあと、 /etc/nginx/conf.d/[何かテキトーな名前].conf というファイルを作り、そこにNginxの設定を書き込む。

server {
     listen 80;
     server_name [外向けIP];   // ここ注意
     location / {
         proxy_pass http://localhost:5000;
     }
}

それぞれの意味として

  • 1行目 server: Nginxサーバーについての設定
  • 2行目 listen: Nginxはデフォで80番ポートを見に行くとかなんとか
  • 3行目 server_name: ドメインとかを書くらしい、今回はIPを直打ち
  • 4行目 localtion / : ルーティングで / にアクセス来た時にプロキシとして飛ばす設定
  • 5行目 proxy_pass: プロキシで飛ばすアドレス。ポート番号注意。

という具合。

この設定が書けたらNginxを起動する

sudo service nginx start

そうして、Pythonでサーバーを立てる。

ポート番号はNginxの設定ファイルと合うようにする。

python3 -m http.server 5000

これでブラウザを見に行くと中身が見れる。

f:id:komi1230:20200628175820p:plain
ブラウザでの表示画面

これで簡単にデプロイができた。