Nginx提供HTTP的Basic Auth功能,配置了Basic Auth之後,需要輸入正確的使用者名稱和密碼之後才能正確的訪問網站。
我們使用htpasswd來生成密碼資訊,首先要安裝httpd-tools,在httpd-tools中包含了htpasswd命令。需要依賴一個工具,先檢查一下系統是否已經安裝此工具。
rpm -qf /usr/bin/htpasswd
如果沒有安裝此工具,那麼可以yum命令安裝
yum install -y httpd-tools
接下來我們就可以建立使用者和密碼了,例如建立一個test_uname的使用者,而且指定目錄為/etc/nginx,如果沒有此目錄,那麼建立目錄,進入/etc/nginx目錄下,執行以下命令
htpasswd -c ./nginx_auth_conf test_uname
下一步就是確定兩次密碼,完成之後cat檢視一下
[root@localhost nginx]# cat nginx_auth_conf
test_uname:zYOFNeL1lXaGk //test_uname 為使用者名稱,後面是密碼
然後下一步就是修改Nginx的配置檔案了,需要在訪問控制的目錄下編輯配置項,一定要制定好密碼檔案的路徑
server {
listen 80;
server_name example.com;
access_log logs/access.log main;
location / {
root /data/www/project;
auth_basic "auth.......";
auth_basic_user_file /etc/nginx/nginx_auth_conf;
index index.php index.html;
}
}
記得修改完配置一定要檢測Nginx配置是否正確,正確後再重新軟載入配置檔案
[root@~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@~]# /usr/local/nginx/sbin/nginx -s reload
OK~