1. 程式人生 > >Nginx虛擬主機及訪問控制

Nginx虛擬主機及訪問控制

ref -o location www. 技術 secret 能夠 htm pass

在上一篇Nginx服務構建及訪問狀態統計的基礎上,嘗試完成Nginx虛擬主機及訪問控制實驗。

實驗環境:

RHEL6-5(IP地址192.168.100.110)
Win7-1(IP地址192.168.100.202)

配置虛擬主機實驗過程:

1.修改主配置文件

# vim /usr/local/nginx/conf/nginx.conf
在配置文件的末尾單獨插入就不會有影響,註意格式(主要就是註意括號問題!)
server {
        server_name  www.benet.com;
        location / {
            root   /var/www/benet;
            index  index.html index.php;
        }
    }
    server {
        server_name  www.accp.com;
        location / {
            root   /var/www/accp;
            index  index.html index.php;
        }
    }
}                         //這個括號需要把原文件末尾的括號給去掉,用nginx -t 去檢測配置文件是否配置正確//

2.搭建DNS域名解析服務,解析域名分別為www.benet.com;www.accp.com,對應的IP地址為192.168.100.110(Nginx服務端地址)

3.創建配置文件中對應的根目錄,並分別添加首頁內容

# mkdir /var/www/benet /var/www/accp
# vim /var/www/benet/index.html         //添加並編輯benet首頁文件
    this is benet               //寫入首頁內容
# vim /var/www/accp/index.html          //添加並編輯accp首頁文件
    this is accp                //寫入首頁內容

4.重啟nginx並測試(註意測試機需指定DNS解析地址)

# service nginx restart     //重啟nginx服務

技術分享圖片
技術分享圖片

身份驗證訪問:

1. 創建訪問用戶及密碼

# htpasswd -c /usr/local/nginx/passwd.db zhangsan

2.修改密碼文件的權限為400,將所有者改為nginx,設置nginx的用戶能夠讀取

# chown nginx /usr/local/nginx/passwd.db
# chmod 400 /usr/local/nginx/passwd.db

3.修改主配置文件nginx.conf,添加相應認證配置項。

# vim /usr/local/nginx/conf/nginx.conf
location / {
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            root   html;
            index  index.html index.htm;
        }

4.檢測語法、重啟服務、測試

# nginx –t      //測試語法
# service nginx reload  //重啟服務

技術分享圖片
技術分享圖片

基於客戶端控制:

1. 修改主配置文件nginx.conf,添加相應配置項。

# vim /usr/local/nginx/conf/nginx.conf
location / {
            deny 192.168.100.110;
              allow all;
            root   html;
            index  index.html index.htm;
        }

2. 重啟服務,並測試

# service nginx reload      //重啟服務

技術分享圖片
測試成功!

Nginx虛擬主機及訪問控制