關於Nginx理解

2022-01-30 04:06:20 字數 1938 閱讀 6724

基礎知識

nginx由於使用了 epoll模型,要求linux的核心必須在2.6以上。要了解epoll模型,可以看看知乎上的這篇文章:io多路復用與 select,poll與epoll的關係

。使用 uname -a 檢視linux 核心版本,如下是centos 6.5的顯示:

編譯與安裝

nginx依賴以下模組:

以gzip 模組為例,檢視以下模組是否安裝:

如果沒有安裝,那麼就 yum -y install zlib zlib-devel。

make是用來編譯的,它從makefile中讀取指令,然後編譯。make install是用來安裝的,它也從makefile中讀取指令,安裝到指定的位置。

最簡單的編譯安裝 nginx

tar zxvf nginx-1.10.2.tar.gz

解壓以後進入到

./configure 是用來檢查本機的的安裝環境。在configure階段結束以後,將會出現如下資訊:

可以看到預設的安裝目錄以及一些基本的配置。

啟動

nginx預設採用80埠,在直接啟動nginx之前,先檢查80埠是否被占用,使用fuser -n tcp 80或者netstat -pan | grep :80檢視80埠是否被占用。這裡假設沒有被占用,然後進入 /usr/local/nginx(上文提到的預設安裝目錄)目錄:

nginx配置

在/usr/local/nginx/conf(預設配置)中,有乙個nginx.conf檔案。nginx.conf的**是這樣的:

注意到最頂上的日誌配置嗎?在頂部設定的配置全域性生效。但是子模組可以覆蓋它。頂部日誌配置:

假設開發人員改變了nginx.conf配置,測試nginx.conf是否合法:

nginx配置檔案架構的圖

這裡有詳細的配置:

在編譯階段需要附帶編譯上ssl模組:./configure --with-http_ssl_module

限流

注意在http中配置以後需要在server中引入。

burst一秒中可以訪問的資料量。burst相當於乙個授權令牌,每秒中每次查詢,當前burst-1,查詢結束,burst+1;

如果burst為0時,訪問不了。

可以看到,基本上是1秒返回一次了。

例項配置

關於nginx的配置理解

主要配置檔案etc nginx nginx.conf include語句表示要包含的配置檔案,相當於js用import匯入檔案的作用 語句分號結尾,key和value使用空格分開 後面放正則 大括號表示指令塊 後面表示注釋 詳細說明 user nginx 設定執行nginx的使用者 worker p...

關於nginx配置

通常,配置檔案可以包括伺服器監聽的埠和伺服器名稱區分的幾個server塊。當nginx決定哪個伺服器處理請求後,它會根據伺服器塊內部定義的location指令的引數測試請求頭中指定的uri。將以下location塊新增到伺服器 server 塊 該location塊指定與請求中的uri相比較的 字首...

深入理解nginx

1.檢視核心版本 因為2.6以上的核心才支援epoll,nginx的高併發的特性依賴epoll uname a linux com.guang 3.10.0 514.16.1.el7.x86 64 1 smp wed apr 12 15 04 24 utc 2017 x86 64 x86 64 x8...