■課題リスト
1.nginx.confのディレクティブの記述順序性
2.nginxのパフォーマンスの影響
下記を実行したときのパフォーマンス劣化をapacheの場合と比較する
rewriteなどで正規表現いっぱい実行、phpやperlモジュール実行、2048bit公開鍵でtls終端、複雑なフィルタ、basic認証、nginxのWAFモジュール、その他
3.nginx.confで変数(環境変数?)、if文を使う
4.込み入ったバーチャルホスト名
5.allowディレクティブ、denyディレクティブ
6.geoディレクティブ
7.nginxのセキュリティ設定
下記のキーワードでgoogle検索
「JVN nginx」
「CWE nginx」
「jpcert nginx」
faviconへのリクエストをよしなに
8.リバースプロキシの設定
9.add_header、proxy-set-header
- X-forward-for
- X-Frame-Options(クリックジャッキング対策)
- X-Content-Type-Options
- nikto.plを使ったセキュリティテスト
https://qiita.com/bezeklik/items/1c4145652661cf5b2271
10.tomcatとの連携
- nginxではajp12やajp13プロトコルでtomcatと連携することはできるか?
- nginxのproxy機能とapacheのmod_proxy_httpモジュールの違い
- connection pooling
- キャッシュ
- 同期/非同期
- バックエンドへのリクエストに付け替えたり追加したり削除するヘッダ
X-Forward-for
- クライアントからのレスポンスに付け替えたり追加したり削除するヘッダ
location
- cookie
cookieに「secure」を付与
- トランザクションに対するproxyの関与
- persistenceに対するproxyの関与
11.キャッシュ
- ブラウザ側にキャッシュさせる
https://qiita.com/kidach1/items/985efebba639713c562e
- proxyキャッシュ設定
12.apacheのproxypathreverseの代わりの設定
proxy-redirect
13.TLSとSNI
リバースプロキシサーバが名前ベースのvirtual hostにリクエストを振り分ける際には、リクエスト内のhostヘッダ内のFQDNを取り出す必要があるが、TLSで暗号化されたリクエストを復号化するのは振り分け先のvirtual host内で行うために、リバースプロキシサーバとブラウザの両者がSNIを有効にしてある必要があるって話。