【Nginx】第九節 訪問控制

author:咔咔nginx

wechat:fangkangfk測試

 

基於ip的訪問控制代理

http_access_moduleunix

 

基於用戶信任登陸code

http_auth_basic_moduleserver

 

 

下來咱們解釋第一個基於IP的訪問控制

語法: ip

// 容許的訪問  ip

Syntac:allow address | CIDR | unix: | all

Default:

Context: http,server,location,limit_except


// 不容許訪問

Syntac:deny address | CIDR | unix: | all

Default:

Context: http,server,location,limit_except

配置:it

第一種是除了222.128.189.17ip不可訪問,其餘的任何形式均可以訪問io

 

第二種是隻容許222.128.189.17ip訪問,其餘的都不容許訪問 反向代理

 

以上的訪問都是基於http_access_module訪問的

 

下來咱們說一下這種方式的侷限性 

http_access_mosule這種基於ip控制訪問的是須要客戶端直接請求服務端才能夠生效的,可是咱們使用nginx最長用的功能就是反向代理,從下圖就能夠看出來,只要通過反向代理咱們的服務端是獲取不到客戶端的ip的。

這個時候就有個好東西出現了,那就是x_forwarded_for,這個協議是能夠將客戶的ip跟反向代理的ip一塊兒發送給咱們的服務端,就解決了這個問題

 解決方案:

方法一:採用別的HTTP頭信息控制訪問,如HTTP_X_FORWARD_FOR,但這是一種協議,並非所有都支持

方法二:結合geo模塊來實現(這個須要在後邊單獨講解)

方法三:經過http自定義變量傳遞

 

 

實現方式二:基於用戶信任登陸

http_auth_basic_module

 

咱們須要先安裝這個庫

yum -y install httpd

 

 建立一個用戶kaka的用戶

 

修改nginx.conf配置文件

 測試

 

對於http_auth_basic_module侷限性,這裏簡單的提一下倆個方案

這個在後邊的都會寫到的,先知道有這個就能夠了,掌握http_auth_basic_module這個控制模塊

 

對於這個htpasswd這個用法也簡單的說一下

// 修改一個用戶密碼
htpasswd -d password.user kaka

// 添加一個用戶直接用戶密碼寫完
htpasswd -b .passwd Jack 123456

// 刪除一個用戶
htpasswd -D password.user kaka
相關文章
相關標籤/搜索