Nginx仮想ホストとセキュリティ認証

7176 ワード

一、Nginx仮想ホスト構成
構成を説明する前に、仮想ホストとは何かを理解しなければなりません.もし2つの異なるドメイン名のサイトがあれば、サーバーが1台しかありません.この場合どうすればいいですか.実はnginxやapacheを利用して、1台のマシンで複数のマシンをシミュレートしてサーバーとしてサービスを提供することができます.仮想ホストとは、1台の物理サーバを複数の「仮想」に分割するサーバであり、各仮想ホストには独立したドメイン名と独立したディレクトリがあります.まず、最も簡単な仮想ホスト構成の例を見てみましょう.
server {
      
    listen 80; #  80  
    server_name www.lzh.com;       #     
    location / {
                        #    
    index index.html; 
    root /nginx/html/;              # /nginx/html/     
    } 
}

複数の仮想ホストの構成
www.lzh.com -> /nginx/html
www.sqq.com ->/nginx/text
#           
server {
      
listen 80; 
server_name www.lzh.com; 

#            ,              ,     
autoindex on; 

index index.html; 
root /nginx/html/; 
}

server {
      
listen 80; 
server_name www.sqq.com; 

index index.html; 
root /nginx/text/; 

#   self     
location /(html)/ {
      
deny all; 
	} 
}

二、Http安全認証
まず、自分のNginxが正常に動作していることを確認します.
[root@localhost local]# ps aux|grep nginx
root       2156  0.0  0.0  24844   720 ?        Ss   23:08   0:00 nginx: master process ./nginx/sbin/nginx
nobody     2157  0.0  0.1  27372  1424 ?        S    23:08   0:00 nginx: worker process
nobody     2158  0.0  0.1  27372  1424 ?        S    23:08   0:00 nginx: worker process
root       2314  0.0  0.0 112660   968 pts/0    R+   23:09   0:00 grep --color=auto nginx
[root@localhost local]# 

それからhtpasswdツールを使ってパスワードを生成して、なければyumを使ってインストールすることができます
yum -y install httpd-tools #  htpasswd   
cd /etc/nginx/             #     
htpasswd -c ./auth lzh    #  htpasswd             auth   ,   lzh            
more ./auth                #  auth      ,           
server {
         
    listen       80;    
    server_name  localhost;
    auth_basic "Auth access test!input your passward!"; #1,                  
    auth_basic_user_file /nginx/auth;                    #2,     
    #charset koi8-r;    #access_log  
    /var/log/nginx/host.access.log  main;     
    location / {
             
        root   /opt/server;        
        index  index.html index.htm;    
        } 
}

ページにアクセスするとパスワードを入力してユーザーを検証するよう求められます●一致するリソースの一部を検証したい場合は、locationに1、2項目を入れて検証したいファイルに一致させてください●グローバルに検証に参加したい場合は、サーバブロックにプロファイルを入れてください