1. 程式人生 > >nginx服務做用戶認證和基於域名的虛擬主機

nginx服務做用戶認證和基於域名的虛擬主機

標記 虛擬 服務端 圖. install pan num 登陸 onf

實驗一、用nginx怎麽實現用戶訪問時的認證


一、目標

通過調整Nginx服務端配置,實現以下目標:

  1. 訪問Web頁面需要進行用戶認證

  2. 用戶名為:tom,密碼為:123456


二、方案

通過Nginx實現Web頁面的認證,需要修改Nginx配置文件,在配置文件中添加auth語句實現用戶認證。

最後使用htpasswd命令創建用戶及密碼即可,服務端:192.168.4.102,客戶端:192.168.4.101


三、實施步驟(nginx服務安裝見我的“搭建nginx服務”)

1、修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

添加兩行,紅顏色標記

  1. server {

  2. listen 80;

  3. server_name localhost;

  4. auth_basic "Input Password:"; //認證提示符

  5. auth_basic_user_file "/usr/local/nginx/pass"; //認證密碼文件

  6. location / {

  7. root html;

  8. index index.html index.htm;

  9. }

  10. }

2、生成密碼文件,創建用戶及密碼:使用htpasswd命令創建賬戶文件,需要確保系統中已經安裝了httpd-tools。

yum -y install httpd-tools.x86_64 //安裝工具

htpasswd -c /usr/local/nginx/pass tom //創建用戶名和密碼,後期如果增加新的用戶,不需要加-c的參數

3、測試

重啟nginx服務,在客戶端上192.168.4.101去訪問服務器

技術分享圖片

出來如上的框,輸入用戶名和密碼,驗證是否能登陸進去



實驗二、nginx基於域名的虛擬主機

一、目的

沿用上面的實驗1

配置基於域名的虛擬主機,實現以下目標:

  1. 實現兩個基於域名的虛擬主機,域名分別為www.aa.com和www.bb.com

  2. 對域名為www.aa.com的站點進行用戶認證,用戶名稱為tom,密碼為123456


二、方案

修改Nginx配置文件,添加server容器實現虛擬主機功能;對於需要進行用戶認證的虛擬主機添加auth認證語句

三、實施步驟

1、編輯配置文件:vim /usr/local/nginx/conf/nginx.conf

server {

listen 80;

server_name www.aa.com; //指定域名

auth_basic "Input Password:"; //安全的認證

auth_basic_user_file "/usr/local/nginx/pass"; //密碼文件路徑

location / {

root aa; //網站的根目錄

index index.html index.htm;

}

server {

listen 80;

server_name www.bb.com; //指定域名


location / {

root bb; //網站的根目錄

index index.html index.htm;

}

}

2、創建訪問aa網站的用戶名和密碼,上面已經創建了,不需要再創建

3、創建網站根目錄及對應首頁文件

mkdir /usr/local/nginx/aa mkdir /usr/local/nginx/bb

首頁文件自己自行創建

4、重啟nginx服務

5、客戶端測試

由於沒有做DNS解析,故在主機192.168.4.101的/etc/hosts文件,進行域名解析

添加下面的一行記錄

192.168.4.102 www.aa.com www.bb.com

然後在瀏覽器裏面輸入兩個域名來進行測試,得到不同的頁面




















nginx服務做用戶認證和基於域名的虛擬主機