nginx服務做用戶認證和基於域名的虛擬主機
一、目標
通過調整Nginx服務端配置,實現以下目標:
訪問Web頁面需要進行用戶認證
用戶名為: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
添加兩行,紅顏色標記
server {
listen 80;
server_name localhost;
auth_basic "Input Password:"; //認證提示符
auth_basic_user_file "/usr/local/nginx/pass"; //認證密碼文件
location / {
root html;
index index.html index.htm;
}
}
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
配置基於域名的虛擬主機,實現以下目標:
實現兩個基於域名的虛擬主機,域名分別為www.aa.com和www.bb.com
對域名為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服務做用戶認證和基於域名的虛擬主機