ホームページ >運用・保守 >Nginx >nginx、Apacheのエイリアス、認証機能の解析例

nginx、Apacheのエイリアス、認証機能の解析例

WBOY
WBOY転載
2023-05-24 23:10:22798ブラウズ

まず、Apache エイリアスがどのように構成されているかを確認してください。

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


documentroot /www/jb51.net/www これは仮想ホストのルート ディレクトリですが、phpmyadmin はこのディレクトリに存在しないため、アクセスしようとしています。
servername www.jb51.net
serveralias jb51.net
alias /sdb "/www/public/phpmyadmin/" エイリアス関数が必要です: //www.jb51.net/sdb これははるかに安全です。

オプションのインデックスはシンボリックリンクをフォローします
allowoverride none
命令許可、拒否
すべてから許可
ディレクトリ>

1.apache 認証

認証の種類: 基本
ダイジェスト サマリー
認証方法: a. コンテナ認証: ……
b. 隠しファイル認証用の .htaccess ファイルを作成する
方法 1. コンテナ認証
a. 構成ファイル vi /etc/httpd/conf/httpd.conf
b. 構成:行 531 付近の構成は次のとおりです:

allowoverride none ##非表示の認証、つまりコンテナ認証を許可しません
authtype Basic ##認証タイプは Basicです
authname "ajian " ##認証名は ajian です。
authuserfile /var/www/passwd/pass ##pass は認証パスワード ファイルで、パスワード ファイルが保存される場所を指定します。
require valid-user ## 有効なユーザー (大文字と小文字は単語によって異なる場合があります)
c. ディレクトリを作成します mkdir -p /var/www/passwd
ディレクトリ cd /var / を入力しますwww/passwd
d, create apache user htpasswd -c pass ajian ##pass はパスワード ファイルです ajian はユーザーです
パス ファイルの使用権を Apache に変更します: chown apache.apache pass
Attachment : 次に、パス ファイルにユーザーを追加します: htpasswd pass tt ##パス ファイルに tt ユーザーを追加します
e、サービスを再起動してテストします
方法 2、非表示の認証を渡します
上記と似ていますが、構成が異なります
httpd メイン構成ファイル

allowoverride authconfig
隠しファイルを作成し、認証するディレクトリに配置します
例: vi /var/www/html/mrtg
authtype Basic
authname "ajian"
authuserfile /var/www/passwd/pass
require valid-user

例は次のとおりです

nginx、Apacheのエイリアス、認証機能の解析例

nginx、Apacheのエイリアス、認証機能の解析例

nginx、Apacheのエイリアス、認証機能の解析例

#2. nginx ログイン認証
nginx の http auth 基本パスワードは暗号化されています。 crypt(3) の。 Apache の htpasswd を使用してパスワード ファイルを生成します。
Apache を使用せずに自分でインストールします。 apache2、/usr/local/apach2をインストールしました。
cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #Enter を押してパスワードを入力します。-c はファイルを生成することを意味し、-d は暗号化することを意味しますクリプト付き。
vi nginx.conf cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #パスワードを入力します。-c はファイルを生成することを意味し、-d は暗号化することを意味しますクリプト付き。 vi nginx.conf nginx.conf ファイルに認証ステートメントを追加します。ここで、nginx 0.6.7 以降、auth_basic_user_file の相対ディレクトリは nginx_home/conf であり、以前のバージョンの相対ディレクトリは nginx_home であることに注意してください。


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

server {
listen 80;
server_name tuan.xywy.com;
root /www /tuangou;
indexindex.htmlindex.htmindex.php;
autoindex on;
auth_basic "ユーザー名とパスワードを入力してください";
auth_basic_user_file htpasswd.file;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404 .php;
error_page 403 /404.php;

access_log /logs/tuan_access.log main;
}


ディレクトリの場合、認証は別の場所にあり、php を解釈する場所がその場所にネストされています。そうしないと、php ファイルは実行されず、ダウンロードされます。 auth_basic はネストされた場所の後に来ます。

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

#server {
listen 80;
server_name tuan.xywy.com;
root / www/tuangou;
indexindex.htmlindex.htmindex.php;
autoindex on;
location ~ ^/admin/.* {
location ~ \.php$ {
fastcgi_pass 127.0.0.1: 9000;
fastcgi_indexindex.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
root /www/tuangou/ ;
auth_basic "auth";
auth_basic_user_file htpasswd.file;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
include fastcgi_params;
}

access_log /logs/tuan_access.log main;
}



#三.nginx エイリアス関数の設定が自動的にリストされますディレクトリ

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


server {

listen www.jb51.net:88;

server_name www.jb51.net;

autoindex on; // ディレクトリを開きます関数。

# charset gbk;
location /club {訪問名//www.jb51.net:88/club
alias /www/clublog/club.xywy.com/; これは、サーバー ログが保存される場所
} これは、www.jb51.net:88/club にアクセスすると、club ディレクトリの内容が表示されることを意味します。
location /{
root /www/access;
この場所は www.jb51.net:88 である必要はありません。表示されるのはデフォルトの nxing ページです
# インデックスindex.html インデックス.htm インデックス。php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}



上記の nginx 設定は、http://hou.xywy.com/:88 認証にアクセスすると、デフォルトでサーバー上の /www/access/ のディレクトリにアクセスします。認証後、url=http://hou.xywy.com:88/club により、/www/clublog/club.xywy.com/ のディレクトリの内容が表示されます。混乱するかもしれませんが、注意深く分析してください。

ルートとエイリアスの違い。
最も基本的な違い: alias で指定されたディレクトリは正確で、root は指定されたディレクトリの上位ディレクトリであり、上位ディレクトリには location で指定された名前と同じ名前のディレクトリが含まれている必要があります。また、前述の通り、エイリアスタグを使用したディレクトリブロックではリライトのブレークは使用できません。

この段落を読むと、これは非常に明確になります。

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


location /abc/ {
alias /home /html/abc/;
}


この構成では、http://test/abc/a.html は /home/html/abc/a を指定します。 .html。この設定は、

コードをコピーするように変更することもできます。コードは次のとおりです。


location /abc/ {
root /home/html/;
}


このように、nginx は /home/html/ ディレクトリの下で abc ディレクトリを検索しますが、結果は同じになります。

ただし、エイリアスの設定を次のように変更すると、

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


location /abc/ {
alias / home/html/def/;
}


Then nginx will fetch data from /home/html/def/. この構成では root 構成を直接使用できません。設定するには、/home/html/ に def->abc のソフトリンク (ショートカット) を作成するだけです。

一般に、ルートを / の場所に設定し、エイリアスを /other の場所に設定するのが良い習慣です。

以上がnginx、Apacheのエイリアス、認証機能の解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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