Nginx訪問控制_登陸許可權的控制(http_auth_basic_module)

OldBoy~發表於2018-01-10

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~

 

相關文章