[座学]

・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ディレクティブ