前回のあらすじ
- LAN内からアクセスできるStrapi環境ができた
この記事ですること
- Nginxを用いたリバースプロキシの設定
- Strapiに外部からアクセスする
Nginxを用いたリバースプロキシの構築
リバースプロキシで外部からのアクセスをどこに振り分けるかを決めていく。
今回の場合公開しているサービスがStrapiだけなのでホストのポート30000でNodePortをそのまま公開するのも手だが、複数サービス作る場合を考えると一応作っておきたい。
なので今回は特定ドメインへのアクセスをlocalhost:30000に投げる形で作る。
とりあえずNginxが入っていなければインストール。
sudo apt install nginx
そしたら設定ファイルを作っていく。
Nginxの設定ファイルは作った後、リンクを貼って有効化するしきたりのようなので従っておく。
/etc/nginx/sites-available/server.conf
server{
server_name xxxxx.mydns.jp 192.168.x.x;
listen 8383;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://localhost:30000/;
}
}
server {
listen 80 default_server;
listen 8383 default_server;
server_name _;
return 444;
}
server_nameでxxxxx.mydns.jpとローカルからのアクセスについて処理する設定になる。
なんでポート8383かというと、自宅のネット環境では限られたポートしか公開できなかったため。
普通の環境ならlisten 80;
でいい。
そしてlocation /
、全てのアクセスをポート30000で待ち受けているNodePortに投げている。
これでMinikubeのStrapiまで届く。
その下は万一80番や8383番によくわからないアクセスが来た場合は受け付けないという設定を行っている。
作ったあとはリンクを貼って有効化。
sudo ln -fs /etc/nginx/sites-available/server.conf /etc/nginx/sites-enabled/
systemctl restart nginx
これで192.168.x.x:8383
orxxxxx.mydns.jp
、グローバルIP:8383
でのStrapiへのアクセスが出来るようになった。
外部からのアクセスにルーターのポート開放や静的NAPT設定が必要な場合が多いのでそのあたりは使っているルーターで設定しよう。
mydns.jpを使った動的IPアドレス下でのサーバー公開
さて、 xxxxx.mydns.jp
っていうのがさらっと出てきた。
これはDynamicDNSサービスといって動的IPに対してドメインをつなげてくれるサービスだ。
ありがたいことに無料。
これがないとIPが変わるたびに自分でDNSのIPを変えないといけなくなる。
やり方は簡単で、
https://www.mydns.jp/
ここでアカウントを作って好きなサブドメインで登録するだけ。
その後は定期的にIPアドレスを報告しないといけないのだが、そこはスクリプトで自動化できる。
詳しくは以下の記事を参照。
参考記事:MyDNS事始め
私はv6プラス環境なので公開までもうひと手間必要な上、80番ポートが使えなかった。
まあStrapiにユーザーが直接アクセスすることなんてないので問題なし。
その辺りの設定は別記事に纏めているので同じ環境の人は試してみるといい。
というわけで、前回と打って変わって今回は短かった。
次はいよいよフロントエンドのデプロイへと進んでいく。
ここが終わればほぼ完成といっていいだろう。