显示nginx维护页面
-
- nginxでメンテナンスページを表示する実験をしてみました (参考サイトをDockerで試してみました)
nginxの設定ファイルには触れずに、メンテナンスページの表示/非表示を切り替える
指定したIPはメンテナンスページを表示しない
Dockerは別途インストールしてください
直接启动Nginx
$ docker pull nginx:latest
$ docker run --rm --name nginx-mainte -p 80:80 nginx:latest
-
- ブラウザでアクセス
http://
Welcome to nginxページが表示される
更改索引页面
- nginxのコンテナに乗り込む
$ docker exec -it nginx-mainte /bin/bash
- ドキュメントルートの確認
$ cat /etc/nginx/conf.d/default.conf
・・・
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
・・・
index.htmlを変更
vi無かったので無理くり・・
sed -i -e 's/nginx\!/nginx\!\!/g' /usr/share/nginx/html/index.html
-
- ブラウザでアクセス
http://
nginx! ⇒ nginx!!
制作/确认维护页面
-
- ホスト側で
Nginxコンテナのindex.htmlを流用し、メンテナンスページを作成する
$ docker cp nginx-mainte:/usr/share/nginx/html/index.html maintenance.html
$ vim maintenance.html
htmlを適宜編集(パーミッションも)
- nginxコンテナのドキュメントルートにメンテナンスページを送り込みつつ起動
ctrl + c でコンテナ停止
$ docker run --rm --name nginx-mainte -p 80:80 -v `pwd`/maintenance.html:/usr/share/nginx/html/maintenance.html nginx:latest
-
- ブラウザでアクセス
http:///maintenance.html
メンテナンスページが表示される
切换维护页面的显示/隐藏设置
-
- ホスト側で
mainte.confを作る
/etc/nginx/conf.d/default.confを流用した(コメントアウトされている部分は削除)
geo $allow_ip_flag {
default 0;
x.x.x.x/24 1; # メンテナンス中もアクセス許可するIPを設定
}
server {
listen 80;
server_name localhost;
error_page 503 @maintenance;
error_page 500 502 504 /50x.html;
set $maintenance false;
if ( -e /var/www/nginx/maintenance.txt ) {
set $maintenance true;
}
if ( $allow_ip_flag ) {
set $maintenance false;
}
if ( $maintenance = true ) {
return 503;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location @maintenance {
internal;
expires 0;
root /var/www/nginx;
rewrite ^(.*)$ /maintenance.html break;
}
location = /50x.html {
root /usr/share/nginx/html;
}
}
mainte.confをホスト側からnginxコンテナに送り込みつつ起動
ctrl + c でコンテナ停止
$ docker run --rm --name nginx-mainte -p 8080:80 -v `pwd`/maintenance.html:/var/www/nginx/maintenance.html -v `pwd`/mainte.conf:/etc/nginx/conf.d/default.conf nginx:latest
维护页面开启
- nginxのコンテナに乗り込んで
$ touch /var/www/nginx/maintenance.txt
-
- ブラウザでアクセス
http://:8080
許可IP:Welcome to nginxページが表示される
非許可IP:メンテナンスページが表示される
维护页面已关闭。
- nginxのコンテナに乗り込んで
$ rm /var/www/nginx/maintenance.txt
请参考
-
- DockerHub Nginx
-
- docker上のnginxのドキュメントルート
- Nginxでメンテナンスモード