Google Cloud Platform (GCP) で、nginx リバースプロキシ VM インスタンス(踏み台サーバー)を素早く〇分で作ります。
材料
- バックエンド Web サーバ インスタンス (GCP) 外部IPアドレス抜き
- 必要なら、お好みでドメイン1個
作り方
Marketplace で nginx を選ぶ
Marketplace で nginx を検索し、今回は「タイプ:仮想マシン」を選択します。
右側に料金が表示されるので、選択した設定が問題ないか確認してください。
Marketplace から nginx VM インスタンス作成
nginx の VM インスタンスを作成します。マシンタイプ設定はお好みでどうぞ。
ここで接続元 IP アドレスを指定すれば、絞ることができます。
nginx のリバースプロキシ設定
nginx サーバに SSH 接続し、設定ファイルを作ります。ファイル名は「*****.conf」とします。*****はお好みでどうぞ。
sudo vi /etc/nginx/conf.d/rp-aquiq.conf
server {
server_name {nginx の 外部 IP アドレス};
# リクエストヘッダ(バックエンド WEB サーバに接続元IPアドレスを出力するため)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# バッファなど設定はお好みで
location / {
proxy_pass http://{バックエンド WEB サーバ 内部 IP アドレス};
}
}
- nginx の外部アドレスの部分をホスト名にする場合は、DNS サーバの設定(Aレコード)に、nginx インスタンスの外部 IP アドレスを登録します。
nginx の設定を読み込み
作成した nginx の設定ファイルを読み込むため、nginx をリロードします。
aquiq@nginx-1-vm:~$ sudo service nginx reload
WEB ブラウザから接続して完成
WEB ブラウザから nginx の IP アドレス(または URL)に接続すると、バックエンド WEB サーバのページが表示されます。
バックエンド WEB サーバのアクセスログ設定(+〇分)
バックエンド WEB サーバのアクセスログに接続元 IP アドレスが出力されるように、バックエンド WEB サーバ側を修正しましょう。
不要サービスの停止・削除(+〇分)
GCP のMarkecplace から nginx (タイプ:仮想マシン)を作成すると、MySQL が稼働しているので、不要なら削除しましょう。(状況に応じてサービス停止)
sudo apt remove mysql-server
sudo apt remove mysql-com*
sudo apt remove mysql-apt*
sudo apt remove php7.0-mysql*
HTTPS対応(+〇〇分)
セキュリティ的に http が嫌な場合は、https にしましょう。
以下のサイトを参考にどうぞ。
無料 SSL 証明書は以下のサイトを参考にどうぞ。
その他 nginx の詳細設定は、以下のリンクをご参照ください。