摘要:的指令可以定義默認(rèn)的去處理一些沒有匹配到的請(qǐng)求,如果沒有顯式定義,則會(huì)選取第一個(gè)定義的作為。在了解到如上規(guī)則后,我們可以捕獲未做綁定的域名訪問或直接訪問,做重定向到頁面等處理。
nginx 的 default_server 指令可以定義默認(rèn)的 server 去處理一些沒有匹配到 server_name 的請(qǐng)求,如果沒有顯式定義,則會(huì)選取第一個(gè)定義的 server 作為 default_server。
在了解到如上規(guī)則后,我們可以捕獲未做綁定的域名訪問或直接IP訪問,做重定向到403頁面等處理。
1、nginx 隱式的 default serverhttp { # 如果沒有顯式聲明 default server 則第一個(gè) server 會(huì)被隱式的設(shè)為 default server server { listen 80; server_name _; # _ 并不是重點(diǎn) __ 也可以 ___也可以 return 403; # 403 forbidden } server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } }
很多人復(fù)制粘貼廣泛傳播 server_name 要設(shè)為 "_",其實(shí)一毛錢的關(guān)系也沒有。"_" 只是作為一個(gè)和業(yè)務(wù)域名無關(guān)的請(qǐng)求回收服務(wù)而已,如果我們線上的業(yè)務(wù)都是明確的業(yè)務(wù)域名訪問,那泛解析造成的一些非業(yè)務(wù)域名或ip訪問都會(huì)被這個(gè) sever 回收處理。
在沒有顯式定義 default server 時(shí),nginx 會(huì)將配置的第一個(gè) server 作為 default server,即當(dāng)請(qǐng)求沒有匹配任何 server_name 時(shí),此 server 會(huì)處理此請(qǐng)求。所以,當(dāng)我們直接使用 ip 訪問時(shí)會(huì)被交給此處定義的第一個(gè) server 處理,403 forbidden。
2、顯示的定義一個(gè) default serverhttp { server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } # 顯示的定義一個(gè) default server server { listen 80 default_server; server_name _; return 403; # 403 forbidden } }
建議顯示指定 default server,因?yàn)槲覀冊(cè)谂渲锰摂M主機(jī)或多業(yè)務(wù)時(shí),會(huì)存有多個(gè) server 配置文件,如果使用隱式方式選取第一個(gè)被載入的 server 作為 default server 的話,我們還要時(shí)刻去確認(rèn)誰是被第一個(gè)載入的...制造風(fēng)險(xiǎn)...
3、直接指定server_name 為 ip(只能禁止ip訪問)http { server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } # 直接指定 ip server_name server { listen 80; server_name xxx.xxx.xxx.xxx; return 403; # 403 forbidden } }
以上三種方式都可禁止 ip 直接訪問,且 1,2 同時(shí)可以禁止未綁定域名的訪問(比如你泛解析了主域名)。
小記:nginx 批量載入配置 conf 時(shí)會(huì)按 ascii 排序載入,這就會(huì)以 server_a.conf server_b.conf server_c.conf 的順序載入,如果沒有生命 default_server 的話,那 server_a 會(huì)作為默認(rèn)的 server 去處理 未綁定域名/ip 的請(qǐng)求。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/40007.html
摘要:如對(duì)于請(qǐng)求,依次嘗試按照配置所表示的文件。這里是目錄,會(huì)繼續(xù)按照配置查找如等文件。在沒有更為精確的匹配符合的情況下,會(huì)進(jìn)入這一配置中,實(shí)際上相當(dāng)于缺省配置。 以下備忘 Nginx 中基礎(chǔ)配置的含義。 nginx.conf 在 /etc/nginx 中可以找到 nginx.conf 配置文件,其配置及注釋如下: # 運(yùn)行 Nginx worker 進(jìn)程的用戶群組為 nginx user ...
摘要:選擇以結(jié)尾的進(jìn)行匹配,并優(yōu)先選擇最長的。排序?qū)ζヅ溥^程也有一定的影響,因?yàn)樵谄ヅ涞阶铋L最精確的之后就會(huì)停止匹配。將所有非正則表達(dá)式的與請(qǐng)求的進(jìn)行對(duì)比。結(jié)束當(dāng)前的指令。返回一個(gè)狀態(tài)碼為的永久重定向。 showImg(https://segmentfault.com/img/remote/1460000010731049); Nginx是Igor Sysoev用C語言編寫的一個(gè)web服務(wù)器...
摘要:介紹和使用一介紹是一個(gè)十分輕量級(jí)并且高性能和反向代理服務(wù)器,同樣也是一個(gè)代理服務(wù)器。如果沒有匹配的正則,則使用前面記錄的最長匹配前綴字符。使用精確匹配可以提高查找的速度。例如經(jīng)常請(qǐng)求的話,可以使用來定義。 Nginx介紹和使用 一、介紹 Nginx是一個(gè)十分輕量級(jí)并且高性能HTTP和反向代理服務(wù)器,同樣也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器。 二、特性 HTTP服務(wù)器 反向代...
摘要:如何阻止處理未定義的。如果沒有被發(fā)現(xiàn),將被處理。第一個(gè)匹配的表達(dá)式終止搜索,將使用這個(gè)。此外,任何人可能請(qǐng)求任何是在查詢字符串現(xiàn)在我們來看將如何被處理。這個(gè)將被前綴位置首次匹配然后被正則表達(dá)式匹配,因此,被后處理。 官文:How nginx processes a request ???????Nginx首先判斷哪一個(gè)Server應(yīng)該被用來處理這個(gè)Request。舉個(gè)簡單的配置例子,三...
摘要:本博客首發(fā)在,后因各種原因遷移至先來一波官方站點(diǎn)關(guān)于介紹。同時(shí)擁有一套緩存機(jī)制,可以進(jìn)一步降低網(wǎng)絡(luò)壓力,加速用戶響應(yīng)。主配置文件中,使用命令引用分支配置文件。接收到一個(gè)請(qǐng)求后,先與所有標(biāo)準(zhǔn)進(jìn)行匹配,并記錄匹配度最高的一個(gè)。 本博客首發(fā)在cnblogs,后因各種原因遷移至segmentfault 先來一波官方站點(diǎn)關(guān)于nginx介紹。nginx相關(guān)歷史這里不再贅述啦。showImg(ht...
閱讀 1345·2021-09-22 15:18
閱讀 2676·2021-09-22 15:17
閱讀 2285·2019-08-30 15:55
閱讀 1625·2019-08-30 15:54
閱讀 1116·2019-08-30 13:12
閱讀 669·2019-08-30 13:12
閱讀 1729·2019-08-29 11:33
閱讀 1488·2019-08-26 17:04