ホームページ  >  記事  >  運用・保守  >  Nginx で htpasswd を使用して Web サイトをパスワード保護する方法

Nginx で htpasswd を使用して Web サイトをパスワード保護する方法

王林
王林転載
2023-05-17 15:49:06924ブラウズ

最終的な効果は同様です (異なるブラウザのインターフェイスは異なります):

Nginx で htpasswd を使用して Web サイトをパスワード保護する方法

認証が失敗すると、http エラーが報告されます: 401 authorization required。
このような機能を実装するには、サーバーの構成を変更し、ログインするためのユーザー名とパスワードを設定する必要があります。
まず、Web サイトの nginx サーバー構成を変更する必要があります。ubuntu サーバーの場合、この構成ファイルは通常 /etc/nginx/sites-enabled/ にあります。たとえば、デフォルトの構成ファイル /etc/nginx を使用します。 /sites-enabled/ はここです。デフォルトは例です:

コードをコピーします コードは次のとおりです:

server {
server_name www.fancycedar.info
root /www/fancycedar

# ...
location / {
# 次の 2 行を追加します
auth_basic "restricted";
auth_basic_user_file htpasswd;
# .. .
}

# ...
}

次に、htpasswd ファイルを作成する必要があります。注意すべき詳細は次のとおりです:
htpasswd
のパスはnginx.confと同レベルのディレクトリで十分です。 Ubuntu サーバーの場合、通常は /etc/nginx/ の下にあります。
htpasswd の内容
各行は 1 人のユーザーに関するもので、形式はユーザー名:パスワードです。ただし、ここでのパスワードはプレーンテキストではなく、crypt(3) によって暗号化された文字列であることに注意してください。
php コードの一部を使用して、htpasswd でパスワードを生成できます。

コードをコピーします。 コードは次のとおりです。

//パスワード プレーン テキスト
$password = '何らかのパスワード' ;
// パスワードを暗号化します
$password = crypt($password,base64_encode($password));
// 暗号化されたパスワードを取得します
echo $password;

次に、文字列を htpasswd ファイルに書き込みます。

コードをコピーします。 コードは次のとおりです。

username1:xucqmk13tfooe
username2:yxtfb3xwkombm
...

htpasswd 権限
htpasswd ファイルの権限を変更する必要があります。次のコマンドを実行します。

コードをコピーします。コードは次のとおりです。

sudo chown root:www-data htpasswd
sudo chmod 640 htpasswd

準備はできていますか?
上記の準備が完了したら、nginx サーバーをリロードまたは再起動できます:

コードをコピーします。 コードは次のとおりです。

sudo /etc/init.d/nginx reload
# または
sudo /etc/init.d/nginx restart

以上がNginx で htpasswd を使用して Web サイトをパスワード保護する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。