[座学]
・allowディレクティブ、denyディレクティブ
※マッチング規則、記述順序の意味、暗黙の拒否とか許可の有無など
・geoディレクティブ
・正規表現でパターンマッチングさせたアクセスコントロール
・変数
※X-Forward-for、、エンドポイントのsrcIPアドレスなど
・if分岐の利用
・nginxで演算処理をさせることによるパフォーマンスへの影響
[検証方針]
・
[想定される動作]
[準備]
・リバースプロキシサーバに2つの名前ベースバーチャルホストを立てる
https://gad2.chinko2
https://gad3.chinko3
※それぞれのサーバ証明書をセット(nginx 課題13 TLSとSNI参照)
・nginxの設定(リバースプロキシサーバ)
せ70> cat /etc/nginx/conf.d/proxy.conf
・nginxの設定(リダイレクトするWebサーバ)
せ7> cat /etc/nginx/conf.d/virtualhost.conf
・ログフォーマットは下記の通り
せ7> cat /etc/nginx/nginx.conf
・・・前略・・・
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server_tokens off;
include /etc/nginx/conf.d/*.conf;
}
・静的ページ
せ7> cat /usr/share/nginx/html/gad2.chinko2/index.html
<http>
<head>
<title>test</title>
</head>
<body>
<H1><font color="blue">これはgad2.chinko2だぎゃー</font></H1>
</body>
</http>
せ7> cat /usr/share/nginx/html/gad3.chinko3/index.html
<http>
<head>
<title>test</title>
</head>
<body>
<H1><font color="red">これはgad3.chinko3だぎゃー</font></H1>
</body>
</http>
・nginxサーバ再起動
せ7> systemctl restart nginx
せ70> systemctl restart nginx
※proxyサーバ側もキャッシュしてるかもしれないのでバックエンド側のconfig変更しかしてない場合でもリスタートした方がいいかもしれない(要調査)
・PCのhostsファイルに書きを追記
192.168.2.70 gad2.chinko2 gad3.chinko3
・動作確認
※事前にブラウザキャッシュをすべて削除してからブラウザも再起動してから試行する。
URL窓に https://gad2.chinko2 と入力してエンター
リダイレクトされたページに飛ぶ
せ7> tail -1 /var/log/nginx/access.log
192.168.2.70 - - [26/May/2018:22:18:16 +0900] "GET / HTTP/1.0" 200 133 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" "192.168.2.2"
[研究] それぞれのディレクティブの意味を調べる
・allowディレクティブとdenyディレクティブ

