1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nginx でファイル表示・ベーシック認証

Last updated at Posted at 2020-10-14

ファイルだけをURLでお客様に公開したいな、という事案があり。
調べたところ、Nginxの機能で実現できるとのこと。ベーシック認証もかけられる。
久々のNginxでいろいろな事を忘れていたので、備忘録としてメモしておきます。

autoindex で 「index of」表示

お客様ごとにURIを変える予定なので、locationディレクティブに記述しています。
・ server{} html{} でも可

例)/etc/nginx/conf.d/xxxx.conf
server {
  listen 443;
  server_name xxx.com;
  # 省略

  location /output/develop {
    root /home/public_data;
    autoindex on;              # ディレクトリ表示(on:有効 / off:無効) 
    autoindex_exact_size off;  # ファイルサイズ(on:正確 / off:KB等にまるめ)
    autoindex_localtime on;    # タイムスタンプ(on:ローカル / off:UTC)
  }
}

Nginxを再起動すれば反映します。

 $ sudo nginx -s reload

これで xxx.com/output/develop/ にリクエストすると、
/home/public_data/output/develop/ 内のファイル一覧が表示されます。

表示例)ファイル一覧(空ですが…)
スクリーンショット 2020-10-14 16.53.02.png

auth_basic でベーシック認証

location内に記述することで、URIごとに異なるベーシック認証をかけることができます。
(プレフィックスの前方一致や正規表現を使えばもっと綺麗に書けるかもですが…)

例)/etc/nginx/conf.d/xxxx.conf
  location /output/develop {
    root /home/public_data;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    # basic_authorization
    auth_basic "Login Authentication";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }

/etc/nginx/.htpasswd は自分で作成する必要があります。

$ sudo htpasswd -c /etc/nginx/.htpasswd develop # 認証用ユーザー名
New password:             # 認証用パスワードを設定
Re-type new password:
Adding password for user develop

Nginxを再起動すれば反映します。

 $ sudo nginx -s reload

表示例)ベーシック認証
スクリーンショット 2020-10-14 17.33.54.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?