2026年9月13日
2026年9月13日
Nginxでファイルのダウンロードを制限する方法
ステップ1: Nginxの設定ファイルを編集
まず、Nginxのメインコンフィグファイルを開きます。通常は /etc/nginx/nginx.conf または /etc/nginx/sites-available/default にあります。
# /etc/nginx/sites-available/default を開く
sudo nano /etc/nginx/sites-available/default
ステップ2: ルールを追加してファイルのダウンロードを制限する
特定のファイルやディレクトリに対するアクセスを制限するために、location セクションに新しいルールを追加します。ここでは example.com/download/private_file.zip のファイルへのアクセスを制限する例を示します。
# locationセクションにルールを追加
location /download/private_file.zip {
# 有効なユーザー名とパスワードのリストを作成します
auth_basic "Private File";
auth_basic_user_file /etc/nginx/.htpasswd;
}
ステップ3: ユーザーファイルを作成し、認証情報を追加
次に、Nginxが使用する認証ファイルを生成してユーザー名とパスワードを設定します。htpasswd コマンドを使用できます。
# htpasswdコマンドでユーザー名とパスワードを作成
sudo htpasswd -c /etc/nginx/.htpasswd username
# 次のユーザーも追加する場合
sudo htpasswd /etc/nginx/.htpasswd anotherusername
ステップ4: Nginxを再起動して変更を有効にする
設定が完了したら、Nginxを再起動して変更を適用します。
# Nginxを再起動
sudo systemctl restart nginx
注意事項
- セキュリティ上の注意: 認証ファイルとそのパスは、サーバーの他の部分から見えない場所に保管することをおすすめします。また、認証情報を適切なユーザーのみに共有してください。
- パフォーマンス/運用上の注意: 大量のファイルアクセス制限や認証処理はNginxの性能に影響を与える可能性がありますので、必要最小限で実装することを推奨します。
まとめ
1. auth_basic: ファイルまたはディレクトリへのアクセスに対して基本的な認証を追加できます。
2. auth_basic_user_file: 認証に使用するユーザー名とパスワードのファイルを指定します。
3. セキュアな認証管理: 適切に認証情報を管理し、サーバーのセキュリティを確保します。
4. パフォーマンス最適化: 必要最小限のルールのみを使用して、Nginxの性能を保ちます。
5. 再起動と確認: 設定が正しく適用されているか確認するために、Nginxを再起動します。
関連記事: