最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx訪問控制的原理及實(shí)現(xiàn)

 更新時(shí)間:2024年07月02日 11:21:41   作者:TA548464  
訪問控制是一種安全機(jī)制,旨在限制系統(tǒng)或網(wǎng)絡(luò)資源的訪問權(quán)限,本文主要介紹了Nginx訪問控制的原理及實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

什么是訪問控制?

訪問控制是一種安全機(jī)制,旨在限制系統(tǒng)或網(wǎng)絡(luò)資源的訪問權(quán)限,確保只有經(jīng)過授權(quán)的用戶或系統(tǒng)可以訪問這些資源。對(duì)訪問控制的理解可能包括以下幾個(gè)關(guān)鍵方面:

身份驗(yàn)證(Authentication): 訪問控制的第一步是確認(rèn)用戶或系統(tǒng)的身份。這通常涉及到使用用戶名、密碼、密鑰或其他身份驗(yàn)證手段來驗(yàn)證用戶的身份。合法的身份驗(yàn)證是訪問控制的基礎(chǔ)。

授權(quán)(Authorization): 一旦用戶身份得到驗(yàn)證,接下來的步驟是確定用戶被授予的權(quán)限范圍。這包括確定用戶可以訪問的資源、可以執(zhí)行的操作以及其他相關(guān)權(quán)限。授權(quán)確保用戶只能訪問其被明確允許的資源和功能。

訪問級(jí)別(Access Levels): 訪問控制通常涉及定義不同的訪問級(jí)別,如讀取、寫入、執(zhí)行等。每個(gè)用戶或系統(tǒng)被授予的訪問級(jí)別取決于其角色和權(quán)限配置。精細(xì)的訪問級(jí)別有助于確保安全性和數(shù)據(jù)完整性。

訪問策略(Access Policies): 訪問策略是一組規(guī)則和規(guī)范,用于定義系統(tǒng)中的訪問控制規(guī)則。這可能包括規(guī)定誰可以訪問什么資源、在什么條件下可以訪問等。訪問策略是實(shí)施訪問控制的具體指南。

審計(jì)和監(jiān)控(Auditing and Monitoring): 訪問控制不僅僅是在用戶嘗試訪問資源時(shí)的阻止和允許,還包括對(duì)訪問活動(dòng)的審計(jì)和監(jiān)控。記錄和分析訪問日志有助于檢測潛在的安全威脅或違規(guī)行為。

單點(diǎn)登錄(Single Sign-On,SSO): SSO是一種訪問控制方法,允許用戶通過一次身份驗(yàn)證獲得對(duì)多個(gè)系統(tǒng)的訪問權(quán)限,而不需要在每個(gè)系統(tǒng)中單獨(dú)登錄。這提高了用戶體驗(yàn)并簡化了訪問管理。

1. Nginx 訪問控制模塊

Nginx 是一款高性能的 Web 服務(wù)器,支持多種操作系統(tǒng)。通過 HTTP 模塊、TCP 模塊、UDP 模塊等多種模塊的支持,Nginx 提供了很多靈活的訪問控制配置選項(xiàng)。
Nginx提供了2種最常用的訪問控制方法
(1)基于IP的訪問控制:http_access_module可以使用 Nginx 的 allow 和 deny 指令,來控制對(duì)來自特定 IP 地址的客戶端的訪問權(quán)限。

例:
location /admin {
    allow 192.168.1.100;
    deny all;
}

(2)基于用戶的信任登錄:http_auth_basic_module可以使用 Nginx 的 auth_basic 和 auth_basic_user_file 指令,來啟用基于 HTTP 認(rèn)證的訪問控制。

例:
location /admin {
    auth_basic "Restricted Area";
    auth_basic_user_file /path/to/password/file;
}

2. 基于 IP 的訪問控制

2.1. 配置語法

#allow允許IP
Syntax:allow address | all;
default:默認(rèn)無
Context:http,server,location
?
#deny拒絕IP
Syntax:deny address | all;
default:默認(rèn)無
Context:http,server,location
=======================================================================
allow    允許    ip或者網(wǎng)段
deny    拒絕     ip或者網(wǎng)段

2.2. allow 允許配置實(shí)驗(yàn)

編輯/etc/nginx/conf.d/access_mod.conf內(nèi)容如下:

[root@localhost ~]# hostname -I
192.168.221.138 
?
[root@localhost ~]# vim /etc/nginx/conf.d/allow.conf
server {
        listen 80;
        server_name localhost;  #注意域名不要有沖突
        location  / {
                root /usr/share/nginx/html;
                index index.html index.hml;
                deny 192.168.221.136;    #不允許136訪問
                allow all;
                }
}
?
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl restart nginx
?
//136訪問測試:
[root@localhost ~]# hostname -I
192.168.221.136 
[root@localhost ~]# curl  -I http://192.168.221.138
HTTP/1.1 403 Forbidden  //403訪問被拒絕
Server: nginx/1.24.0
Date: Sun, 30 Jul 2023 23:24:08 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive
?
//130訪問測試:
[root@localhost ~]# hostname -I
192.168.221.130 
[root@localhost ~]# curl  -I http://192.168.221.138
HTTP/1.1 200 OK         //200訪問ok
Server: nginx/1.24.0
Date: Sun, 30 Jul 2023 23:24:28 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 11 Apr 2023 17:22:34 GMT
Connection: keep-alive
ETag: "6435975a-267"
Accept-Ranges: bytes

?需要注意:
1.按順序匹配,已經(jīng)被匹配的ip或者網(wǎng)段,后面不再被匹配。
2.如果先允許所有ip訪問,在定義拒絕訪問。那么拒絕訪問不生效。
3.默認(rèn)為allow all

  • 被拒絕的IP為192.168.221.136,配置拒絕的虛擬機(jī)IP為192.168.221.138,這里禁止136訪問,允許其他所有IP訪問。
  • 主機(jī)136訪問http://192.168.221.138,顯示403 Forbidden。
  • 當(dāng)然也可以反向配置,同時(shí)也可以使用IP網(wǎng)段的配置方式,如allow 192.168.17.0/24; deny all;,表示滿足此網(wǎng)段的IP都可以訪問。

2.3. deny 拒絕配置實(shí)驗(yàn)

如果你想拒絕某個(gè)指定URL地址的所有請(qǐng)求,只需要在location塊中配置deny all指令:

[root@localhost conf.d]# hostname -I
192.168.221.138 

[root@localhost conf.d]# vim /etc/nginx/conf.d/deny.conf
server {
        listen 80;
        server_name localhost;
        location  / {
                root /usr/share/nginx/html;
                index index.html index.hml;
                allow 192.168.221.136;    #只允許136可以訪問
                deny all;    #拒絕所有
                }
}

[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl restart nginx

//136訪問測試
[root@localhost ~]# hostname -I
192.168.221.136 
[root@localhost ~]# curl  -I http://192.168.221.138
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Sun, 30 Jul 2023 23:38:18 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 11 Apr 2023 17:22:34 GMT
Connection: keep-alive
ETag: "6435975a-267"
Accept-Ranges: bytes

//130訪問測試
[root@localhost ~]# hostname -I
192.168.221.130 
[root@localhost ~]# curl  -I http://192.168.221.138
HTTP/1.1 403 Forbidden
Server: nginx/1.24.0
Date: Mon, 31 Jul 2023 00:51:10 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive

//windows宿主機(jī)curl測試
C:\Users\TZH>curl -I http://192.168.221.138
HTTP/1.1 403 Forbidden
Server: nginx/1.24.0
Date: Mon, 31 Jul 2023 00:51:49 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive

3. 基于用戶的信任登錄

基于用戶的信任登錄模塊:http_auth_basic_module有時(shí)候我們會(huì)有這么一種需求,就是你的網(wǎng)站的某些頁面不希望對(duì)所有人公開訪問,我們希望的是某些特定的客戶端可以訪問。
那么我們可以在訪問時(shí)要求進(jìn)行身份認(rèn)證,就如給你自己的家門加一把鎖,以拒絕那些不速之客。

3.1. 配置語法

Syntax:auth_basic string | off;
default:auth_basic off;
Context:http,server,location
auth_basic string; 設(shè)置基本驗(yàn)證的描述信息

Syntax:auth_basic_user_file file;
default:默認(rèn)無
Context:http,server,location
file:設(shè)置存儲(chǔ)用戶名密碼信息的文件。
密碼文件格式 username:password

例:

server {
  location /private {
    auth_basic "Private area";
    auth_basic_user_file /etc/nginx/passwords;
  }
}

這就要求用戶訪問 /private 路徑時(shí)輸入密碼才能訪問。
用戶密碼文件也可以放在其他位置,只要 auth_basic_user_file 指令指向正確的文件即可。

3.2. 配置示例

[root@localhost conf.d]# hostname -I
192.168.221.138 

[root@localhost ~]# vim /etc/nginx/conf.d/auth_mod.conf 
server {
    listen 80;
    server_name localhost;
    location ~ /admin {
        root /var/www/html;
        index index.html index.hml;
        auth_basic "Auth access test!";
        auth_basic_user_file /etc/nginx/auth_conf;
        }
}

[root@localhost conf.d]# mkdir /var/www/html/admin    //創(chuàng)建目錄
[root@localhost conf.d]# echo "auth..."  > /var/www/html/index.html/admin    //創(chuàng)建文件

[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl restart nginx

//做好本地windows的host文件解析
192.168.221.138 www.Jltauth.com

auth_basic不為 off 時(shí),開啟登錄驗(yàn)證功能,auth_basic_user_file 加載賬號(hào)密碼文件。
瀏覽器訪問測試

3.3. 創(chuàng)建登錄的口令文件

[root@localhost ~]# yum install -y httpd-tools 
//htpasswd 是開源 http 服務(wù)器 apache httpd 的一個(gè)命令工具,用于生成 http 基本認(rèn)證的密碼文件

[root@localhost conf.d]# htpasswd -cm /etc/nginx/auth_conf jack
New password: 
Re-type new password: 
Adding password for user jack
//jack:用戶
//-c: 創(chuàng)建一個(gè)新的密碼文件,如果密碼文件已存在,則會(huì)直接覆蓋。
//-m: 在已有的密碼文件中添加用戶,不會(huì)覆蓋已有用戶。
//該命令中,會(huì)創(chuàng)建密碼文件 auth_conf,并寫入用戶 jack 的密碼記錄

[root@localhost conf.d]# htpasswd -m /etc/nginx/auth_conf tom
New password: 
Re-type new password: 
Adding password for user tom
//該命令中,會(huì)在已有的密碼文件 auth_conf 中追加用戶 tom 的密碼記錄

[root@localhost nginx]# cat /etc/nginx/auth_conf
jack:$apr1$YmpHMEkH$OtjswnIL5F.E7HUGKBi6U/
tom:$apr1$S8Q.Csg.$JQ6hQSExltiB9x/vlQURb0

瀏覽器訪問測試

到此這篇關(guān)于Nginx 訪問控制的原理及實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx 訪問控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx如何將http訪問的網(wǎng)站改成https訪問

    nginx如何將http訪問的網(wǎng)站改成https訪問

    這篇文章主要介紹了nginx如何將http訪問的網(wǎng)站改成https訪問,幫助大家更好的理解和使用nginx,感興趣的朋友可以了解下
    2021-02-02
  • Nginx泛解析到子目錄后自動(dòng)判斷有無public目錄詳解

    Nginx泛解析到子目錄后自動(dòng)判斷有無public目錄詳解

    這篇文章主要給大家介紹了關(guān)于Nginx泛解析到子目錄后自動(dòng)判斷有無public目錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Nginx反向代理至go-fastdfs案例講解

    Nginx反向代理至go-fastdfs案例講解

    這篇文章主要介紹了Nginx反向代理至go-fastdfs案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Linux上搭載Nginx負(fù)載均衡配置使用案例詳解

    Linux上搭載Nginx負(fù)載均衡配置使用案例詳解

    這篇文章主要介紹了Linux上搭載Nginx負(fù)載均衡配置使用案例詳解,針對(duì)此情況而衍生出來的一種廉價(jià)有效透明的方法以擴(kuò)展現(xiàn)有網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性的技術(shù)就是負(fù)載均衡(Load?Balance),需要的朋友可以參考下
    2022-01-01
  • Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼

    Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼

    這篇文章主要介紹了Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用Nginx進(jìn)行URL轉(zhuǎn)發(fā)的配置案例

    使用Nginx進(jìn)行URL轉(zhuǎn)發(fā)的配置案例

    Nginx是一個(gè)高性能的Web服務(wù)器和反向代理服務(wù)器,它還可以用于URL轉(zhuǎn)發(fā),在本教學(xué)文章中,我們將從安裝Nginx開始,逐步介紹配置步驟,并展示一個(gè)URL轉(zhuǎn)發(fā)的案例,感興趣的朋友可以參考下
    2023-09-09
  • 使用Nginx實(shí)現(xiàn)根據(jù) IP 匹配指定 URL

    使用Nginx實(shí)現(xiàn)根據(jù) IP 匹配指定 URL

    最近的一個(gè)項(xiàng)目,需要特定的IP訪問某專題頁面的時(shí)候跳轉(zhuǎn)到網(wǎng)站首頁,思考了下,直接使用NGINX實(shí)現(xiàn),分享給大家。
    2014-09-09
  • nginx降權(quán)與匹配php詳細(xì)講解

    nginx降權(quán)與匹配php詳細(xì)講解

    大部分網(wǎng)站開發(fā)語言都要運(yùn)行在服務(wù)器,比如主流的nginx、apache等等,下面這篇文章主要給大家介紹了關(guān)于nginx降權(quán)與匹配php的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Linux配置nginx腳本的操作方法

    Linux配置nginx腳本的操作方法

    正常來說,配置nginx相對(duì)來說比較麻煩,這里寫一個(gè)sh腳本,可以之間完成相關(guān)的操作,其中包括,換 nginx的源,加載nginx前置的依賴,同樣包含nginx的conf文件配置,這篇文章主要介紹了Linux配置nginx腳本的操作方法,需要的朋友可以參考下
    2024-05-05
  • Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    因?yàn)閚ginx的優(yōu)越性,現(xiàn)在越來越多的用戶在生產(chǎn)環(huán)境中使用nginx作為前端,不管nginx在前端是做負(fù)載均衡還是只做簡單的反向代理,都需要把日志轉(zhuǎn)發(fā)到后端real server,以方便我們檢查程序的各種故障
    2014-08-08

最新評(píng)論

牙克石市| 北流市| 祁连县| 乐业县| 黔西县| 武山县| 河西区| 玉山县| 东阿县| 普兰店市| 阜城县| 江源县| 玛纳斯县| 镇巴县| 德江县| 弋阳县| 福海县| 乐都县| 临湘市| 西城区| 西宁市| 大丰市| 白朗县| 龙南县| 尚义县| 遂平县| 永登县| 宝丰县| 定日县| 武城县| 刚察县| 二连浩特市| 崇信县| 崇文区| 宁海县| 张家川| 潍坊市| 察隅县| 新绛县| 黑河市| 桑日县|