詳しくはサイトまたはディレクトリの設定のための認証パスワードを追加するためにnginxのサーバー

この記事では、困っている友達を参照することができ、Apacheのhtpasswdのツールを使用し、nginxのサーバーにサイトやディレクトリの詳細な追加認証パスワードを設定する方法について説明し
nginxのも、サイトの特定のファイルやディレクトリのパスワード認証を設定することができます。パスワードは暗号で暗号化されなければなりません。パスワードを作成するにはApacheのhtpasswdのを使用することができます。

形式は次のとおりです。

-b -c site_passユーザ名、パスワードをhtpasswdの
パスワードファイルのsite_pass。同じディレクトリ内の同じケースのnginxの設定ファイルでは、しかし、あなたはまた、他のディレクトリに置くことができ、絶対的またはnginxの設定ファイルでカレントディレクトリからの相対アドレスを指定する必要があります。

コマンドプロンプトでのhtpasswdコマンドを入力見つからない場合は、HTTPDをインストールする必要があります。CentOSのは、実行する可能性がある場合には、インストールすることで、

YUMのhttpdをインストールし
、あなたがHTTPDをインストールしたくない場合は、次のようにコードがある(実装するためのperlスクリプトを使用することができ、:)

#!は/ usr / binに/ perlの -w #filename:add_ftp_user.plは厳格な使用;#プリント"#example:ユーザー:passwdのです\ n";ながら、(<STDIN>){終了した場合($ _ =〜/ ^ \ nは/);ムシャムシャ食べる;(私の$のユーザーは、私の$パス)=スプリット/:/、$ _、2;私の$暗号=暗号$パス、 '$ 1 $' gensalt(8);プリント「$ユーザー:. $の暗号\ n「;}サブgensalt {私の$カウント=シフト;私@salt =(。、 '/'、0 .. 9、 'A' .. 'Z'、 '' .. 'Z' '') ;私の$ sの; $ S =のための$塩[ランドの@salt](1 .. $回数); $ sを返します;}。
与えられたスクリプトの実行許可:
chmodの+ X O add_user.pl
使用するスクリプト:

./add_user.pluser:password
生成されたユーザ名とパスワードには/ usr / local / nginxの/ confに貼り付ける /バーチャルホスト/ nginx_passwd ファイルへの

認定は、サイトに追加する場合は、nginxのサーバーの構成セクションでの認証ステートメントに直接書き込むことができます。

認証がディレクトリに追加する場合は、カタログの形で書かれる必要があります。同時に、プラスのカタログでは、PHP、またはPHPを実行するには、ダウンロードしたのではなく実行されます。

たとえば、次のようにサイト全体の認証、PHPの説明の前にAUTH_BASICに基づきます。

サーバー{80を聞いて、サーバー名www.iis7.com jb51.net ;ルート/www/jb51.net、インデックスのindex.htmlのindex.htm index.phpを、AUTH_BASIC "入力あなたのユーザー名とパスワード"; auth_basic_user_fileは/ usr / local / nginxの/ confに/バーチャルホスト/ nginx_passwd;位置〜.PHP $ {127.0.0.1:9000 fastcgi_pass; fastcgi_indexのindex.php; fastcgi_paramsを含み;}場所〜/\.ht {すべてを拒否;}のaccess_log /logs/jb51.net_access.log };メイン
別の場所に認証ディレクトリ、この位置における位置ネストされたPHPの説明のために、そうでなければPHPファイルを実行し、ダウンロードされません。ネストされたAUTH_BASIC場所後。

サーバー{聞く80; server_nameのwww.iis7.com jb51.net ;ルート/www/jb51.net;インデックスのindex.htmlのindex.htm index.phpを、場所〜^ /管理/.* {場所〜\ phpの$ { fastcgi_pass 127.0.0.1:9000; fastcgi_indexのindex.php; fastcgi_params含ま } AUTH_BASIC "AUTH"を; /usr/http://www.bbqmw.net/qm_yeqm/ auth_basic_user_file 赤ちゃんの名前を/ローカル/ nginxの/ confに/バーチャルホスト /認証/ admin.pass;}場所〜.PHP $ { 127.0.0.1:9000 fastcgi_pass; fastcgi_indexのindex.php; fastcgi_paramsを含み;}場所〜/\.ht {すべてを拒否;}のaccess_log /logs/jb51.net_access.log主;}
詳細があり、その場所〜^ /管理/.* {... } adminディレクトリ内のすべてのファイルを保護します。あなただけ設定した場合/管理/以下、直接入力/admin/index.phpはまだアクセスして実行することができます。^ /管理/.*ディレクトリ内のすべてのファイルを保護するためのもの。もちろん、唯一の認証を取得。そしてないすべての要求または各ファイルの要求は、それを認定します。

おすすめ

転載: www.cnblogs.com/murongyuling/p/10973169.html