nginx模組,配置指令,塊之間的聯絡

2021-10-03 05:39:36 字數 3223 閱讀 2899

安裝nginx以後,nginx會提供乙個預設server,我們可以從nginx.conf檔案中找到這個預設server的相關配置,如下:

server

error_page

500502

503504/50

x.html

;location=/

50x.html

}

乙個http塊中可以配置多個server塊,乙個server塊中可以配置多個location,這裡配置乙個新的location:

[

root@server1 conf]#

vimnginx

.conf

寫入:41

location

/demo

這個location對應的url為/demo,此location塊中的root /opt;配置指令表示這個location的文件根目錄為/opt目錄,所以,當我們在瀏覽器中訪問/demo/1.jpg這個url時,訪問的其實是伺服器中的/opt/demo/1.jpg檔案

在伺服器上建立/opt/demo/目錄,並且在此目錄中建立了乙個名為index.html的檔案,index.html內容如下:

cd

/opt

/mkdir

demo

cddemo

/vim

index

.html

寫入:www

.westos

.org

之後執行nginx -s reload命令過載配置,過載配置以後,在瀏覽器中訪問鏈結位址,效果如下:

自定義的location已經生效了,當我們訪問這個url時,即可訪問到伺服器的/opt/demo/index.html檔案,在同乙個web服務中,我們可以將不同的url對應到不同的伺服器路徑中,上例中,除了預設的location,我們又手動配置了乙個新的location,預設的location為/,我們手動配置的新的location為/demo,所以,訪問這兩個url時,會分別對應的不同的文件根目錄,從不同的目錄中查詢對應的資源,又因為index配置指令的原因,會預設訪問對應目錄中的index.html檔案或index.htm檔案。

同時,預設的location和新加入的location中,index配置指令的值是完全相同的,由於這兩個location的index配置完全相同,所以,可以把這個index配置項提取到上一級的server塊中,以便這兩個location共享這個index配置,配置如下:

server

location

/demo

error_page

500502

503504/50

x.html

;location=/

50x.html

}

將index配置指令提取到了這兩個location塊的上一級server塊中,以便兩個location塊能夠共享這個index配置,換句話說就是,server塊中的index指令是對當前server塊中的所有location生效的,當然,如果某個location塊中有自己的index配置,那麼針對當前location塊來說,還是以自己的index配置為準,比如如下配置:

[

root@server1 conf]#

vimnginx

.conf

29server

3940

41location

/demo

4546

上述配置中,server塊中index配置是對當前server塊中的所有location塊生效的,但是由於location /demo中有自己的index配置,那麼針對location /demo來說,自己的index配置的優先順序更高,自己的index配置會覆蓋上一級的index配置,所以,當我們訪問/demo這個url時,缺省會在對應的目錄中查詢1.jpg這個檔案,而不是index.html檔案,但是另外乙個location中由於沒有配置index指令,所以它仍然會以上一級server塊中的index配置為準。此時在瀏覽器訪問

某些配置指令只能在http塊中配置,某些配置指令只能在location塊中配置,有些配置指令既能在server塊中配置又能在http塊中配置,而有些配置指令只能在main區中進行配置。

index指令就屬於那種既能在location塊中配置,又能在server塊中配置,還能再http塊中配置的指令,只不過,當index指令配置在不同的塊中時,對應的作用域不同。

同樣,有些指令既能配置在server塊中,也能配置在http塊中,當多個server存在相同的配置時,我們可以將這些完全相同的配置指令提取到上一級的http塊中,以便多個server塊共用這些配置,當然,如果你在某個server中單獨配置了對應的配置指令,那麼這個server仍然會以自己的配置為準

「配置指令"不僅和"塊"有一定的關係,「配置指令"和"模組"也有著非常緊密的對應關係,nginx是模組化的,不同的"模組"負責不同的"功能」,所以,當我們需要針對某個"功能"進行配置時,就需要使用到對應的"配置指令」,從根本上來說,每個"配置指令"都屬於某乙個"模組",乙個"模組"中會有乙個或多個"配置指令",當我們想要對相關模組或者功能進行設定時,就會使用到對應模組中的配置指令。在nginx編譯安裝過程中,除了內建的標準模組,還有一些可選模組,我們可以在編譯安裝時選擇安裝哪些可選模組,如果你沒有安裝對應的可選模組,那麼你也無法使用對應的配置指令。原因剛才已經說過,每個配置指令都屬於某乙個模組。

高效能伺服器 Nginx之模組 配置指令和塊

在server1中 vim usr local nginx conf nginx.conf 修改 38 server 46 location demo 50 51 error page 500 502 503 504 50x.html 52 location 50x.html 55配置發布目錄 mk...

Nginx 的配置指令

我們已經了解了 nginx 的基本命令和架構原理,下面該到最讓人頭疼也是最不容易理解的部分了,那就是 nginx.conf 這個配置檔案,下面從 nginx 的指令開始,一步步來講解 nginx 的配置。先來看乙個典型的 nginx 配置檔案示例。從上面可以看到,這個配置檔案中包含了多個指令塊,有些...

Nginx 常用模組指令

1.http核心模組 http core a.client body buffer size 指定連線請求實體的緩衝區大小,如果超了,那麼這些請求實體的整體或部分將嘗試寫入乙個臨時檔案,預設值是8k 16k b.client body temp path 指定連線請求實體試圖寫入的臨時檔案路徑,預設...