nginxでメンテナンスページを表示する方法

2020年4月13日 | 広報・PR・イベント運営担当

nginxで、特定のIPアドレスからのアクセスには通常の画面を表示し、それ以外の場合にはメンテナンス画面を表示する設定方法をご紹介します。

いくつか方法(nginx設定ファイルの再編集、nginxリロード不要な方法など)があるようですが、今回はそのうち実際に試してみて、難なく動作したものになります。

 

[準備1]メンテナンス用のhtmlファイルをアップロード

サーバのドキュメントルートに、メンテナンス用のhtmlファイルをアップロードします。 

例:

/var/www/html/maintenance.html

 

[準備2]メンテナンス用の設定ファイルを作成

コマンド例:

$ sudo vi /etc/nginx/conf.d/maintenance

ファイルの内容は下記のとおりです。
「xxx.xxx.xxx.xxx」の部分には、通常の画面の表示を許可するIPアドレスを入れます。

設定ファイル:

error_page 500 @maintenance;
# Set Env
set $maintenance “on”;
# Allow Paths
if ($uri ~ “^/exclude/”) {
set $maintenance “off”;
}
# Allow IPs
if ($remote_addr ~ “xxx.xxx.xxx.xxx”) {
set $maintenance “off”;
}
if ($http_x_forwarded_for ~ “xxx.xxx.xxx.xxx”) {
set $maintenance “off”;
}
# maintenance
if ($maintenance = “on”) {
return 500;
}
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}

 

[準備3]nginx設定ファイルを変更

コマンド例:

$ sudo vi /etc/nginx/nginx.conf

serverコンテキスト内に下記の設定を追加します。
includeの行は、通常はコメントアウトしておき、メンテナンス時のみ有効にして切り替えます。

設定ファイル:

server {

#include /etc/nginx/conf.d/maintenance;
rewrite ^/maintenance.html(.*)$ https://$host/ permanent;

}

 

実際の切替手順は下記のとおりです。

 

1. nginx設定ファイルの変更

コマンド例:

$ sudo vi /etc/nginx/nginx.conf

先程追加したserverコンテキスト内のinclude行を有効にして、nginx.confファイルを保存します。

設定ファイル:

server {

include /etc/nginx/conf.d/maintenance;
rewrite ^/maintenance.html(.*)$ https://$host/ permanent;

}

 

2. nginxのリロード

コマンド例:

$ sudo nginx -s reload

 

3. メンテナンスページへの切り替えを確認

実際にWebブラウザ等からアクセスして確認します。

 

4. 通常の画面に戻す

上記の1で変更したnginx設定ファイルを元に戻して(1で有効にしたinclude行をコメントアウトして)nginxをリロードし、通常の画面表示に戻ったことを確認します。

nginxの設定ファイル(通常時):

nginxのリロード:

 

参考:Qiita nginxでメンテナンスページを表示させる。改良版
https://qiita.com/kooohei/items/095eb1304f9fa67ed1a1

 

いかがでしたか?

イー・エージェンシーでは、AWS(Amazon Web Services)による開発や、データプライバシーコンサルティングCRM / MA支援ツールでお客様のマーケティング課題の解決を支援しております。 詳しくは下記サイトをご覧ください。

データソリューション|イー・エージェンシー
https://datasolution.e-agency.co.jp/

また、Google アナリティクス 4 プロパティ(GA4)など Google マーケティング プラットフォーム(GMP)の各種ツールをはじめ、BigQuery など Google Cloud Platform(GCP)を用いたデータ統合や、広告連携アトリビューション分析などデータ活用全般を支援しております。 詳しくは下記サイトをご覧ください。

Google アナリティクス 4 プロパティ(GA4)など
Google マーケティング プラットフォーム|イー・エージェンシー
https://googleanalytics360-suite.e-agency.co.jp/

PICK UP

広報・PR・イベント運営担当

ライター

おもてなしを科学するイー・エージェンシーでは、クロスデバイス分析によるユーザー単位の分析やオンラインオフラインを横断した分析など次世代の分析をサポート。また分析データを元にしたABテスト支援から、EC領域での購買、行動データを活用したレコメンドシステムなどを提供。 お問い合わせはこちらにどうぞ。

お問い合わせ

サービスに関するご相談は
こちらよりお気軽にお問い合わせください。

e-Agencyの様々な情報をFacebookでお届けします!