リバースプロキシ
tinyauthをリバースプロキシの背後で操作する方法
tinyauthは基本的にリバースプロキシの背後で動作するように設計されています。クライアントの実際のIPアドレスとプロトコルを正しく識別するため server.trust_proxyを設定する必要があります。
# config.yaml
server:
trust_proxy: true
server.trust_proxy:リバースプロキシヘッダを信頼するかどうかを設定します。デフォルトはfalseはい。true:すべてのプロキシヘッダを信頼します。完全に信頼できるネットワークでのみ使用してください。false:プロキシヘッダを信頼していません。'127.0.0.1':指定されたIPアドレスのプロキシのみを信頼します。1または2:指定されたホップ数だけのプロキシを信頼します。
Caution
server.trust_proxyを正しく設定しないと、IP スプーフィングの脆弱性が発生する可能性があります。本番環境では true 代わりに、特定のプロキシIPアドレス範囲を指定することをお勧めします。
例
Nginx
Nginxをリバースプロキシとして使用する場合の設定例です。
本番環境では server.trust_proxyにプロキシのIPアドレスを直接指定することをお勧めします。
# config.yaml
server:
# Nginx가 같은 호스트에서 실행되는 경우
trust_proxy: '127.0.0.1'
# /etc/nginx/conf.d/tinyauth.conf
server {
listen 443 ssl;
server_name auth.example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Caddy
Caddyをリバースプロキシとして使用する場合の設定例です。 Caddyは自動的に HTTPS 証明書を発行し、 X-Forwarded-* ヘッダーを設定してください。
Docker ネットワーク上 Caddyが実行されると、 Caddy コンテナのIP帯域を指定します。
# config.yaml
server:
# Docker 브릿지 네트워크 대역
trust_proxy: '172.18.0.0/16'
# Caddyfile
auth.example.com {
reverse_proxy localhost:8080
}