簡單認識 Nginx

2022-08-18 21:12:10 字數 3070 閱讀 6202

nginx 是一款高效能的 web 伺服器軟體,主要用於提供網上資訊瀏覽服務,為高併發**的應用場景而設計,可以部署在 linux、macos 和 windows 等作業系統中,它的優點包括效能高、穩定性好、結構模組化、配置簡單以及資源消耗非常低等。擁有 https 訪問、gzip 壓縮、虛擬主機和 url 重寫等功能,不但可以搭配 fastcgi 程式處理動態請求,還可以用於**、反向**、負載均衡和快取服務等功能。

nginx 提供的動靜分離是指把動態請求和靜態請求分開,合適的伺服器處理響應的請求,是整個系統的效能、效率更高。

nginx 可以根據配置對不同的請求進行不同**,這是動靜分離的基礎。靜態請求對應的靜態資源可以直接放在 nginx 上做緩衝,更好的做法是放在響應的緩衝伺服器上。動態請求由響應的後端伺服器處理。

upstream test 

server

# 所有靜態請求都由 nginx 處理

}

nginx 的配置都寫在nginx.conf的檔案裡,從 nginx 的配置指令作用域來講,分為 5 個作用於塊,分別是:

全域性作用域塊中配置通用的 nginx 配置,比如 nginx 的使用者組資訊, nginx 的併發程序數,日誌存放位置等。

# nginx 使用者及組: 使用者 組。 windows 下不指定

user nginx nginx;

# 工作程序:數目。根據硬體調整,通常等於 cpu 數量或者 2 倍與 cpu。

worker_processes 8;

# 錯誤日誌:存放路徑

error_log logs/error.log

error_log logs/error.log notice;

error_log logs/error.log info;

# pid (程序識別符號):存放路徑

pid logs/nginx.pid;

event 作用域塊設定 nginx 處理連線請求,在 event 模組通常會配置程序的連線數量,就是每乙個 worker 程序能併發處理的最大連線數。

server 指令作用域塊我們可以進行獨立專案的**配置。

events
nginx 的http 指令作用域塊用於控制 nginx 的 http 程序。

日誌格式設定:

$remote_user:記錄客戶端的使用者名稱;

$time_local:記錄訪問時間與時區;

$request:記錄請求的 url 與 http 協議;

$status:記錄請求狀態,成功是200;

$body_bytes_sent:記錄傳送給客戶端檔案主題內容大小;

通常 web 伺服器放在反向**的後面,這樣就不能獲取到客戶端的 ip 位址,通過 $remote_addr 拿到的 ip 位址是反向**伺服器的 ip 位址。反向**伺服器在**請求的 http 頭資訊中,可以增加 x_forwarded_for 資訊,用以記錄原有客戶端的 ip 位址和原來客戶端請求的伺服器位址。

# 設定 http 伺服器,利用它的反向**功能提供負載均衡支援

}

# 配置虛擬機器

server

location /face

# 將**伺服器收到的使用者資訊傳到真實的伺服器上

# 將**伺服器收到的使用者資訊傳到真實的伺服器上

proxy_set_header host $host;

proxy_set_header x-real-ip $remote_addr;

proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

error_page 404 502 = @fetch;

}}

location 匹配規則說明:

優先順序順序: 精確匹配 > 正則匹配 > 部分匹配 > 通用匹配

(location = ) > (location 完整路徑) > (location ^~ 路徑) > (location ~ | ~* 正則匹配) > (location 部分起始路徑) > (location /)

# location =

location = /

# location /

location /

# location 部分起始路徑

location /documents/

#location ^~ 路徑

location ^~ /images/

#location ~ 正則匹配

location ~ /documents/abc

# location ~* 正則匹配

# location ~* 正則匹配

location ~* /js/.*\.js

nginx日誌簡單認識

我們觀察 nginx 的server段,可以看到如下類似資訊 access log logs host.access.log main 這說明 該 server,它的訪問日誌的檔案是 logs host.access.log 使用的格式 main 格式.除了main格式,你可以自定義其他格式.mai...

Nginx初階 認識Nginx

nginx常見的應用場景如下圖所示 曾經的web開發並不是完全的前後端分離,最明顯的例子就是jsp,基本是前後端不分離,直到後來spring生態體系和前端框架的發展,web應用程式成了單純的提 用介面服務的程式,因此靜態資源就沒必要交給應用伺服器去處理,而是交給nginx nginx的快取加速和負載...

this簡單認識

this 在函式中簡單的說,this的指向存在於函式呼叫的時候決定的,誰呼叫了這函式 函式中的this就指向誰 例如 1 普通的呼叫函式的時候 fn window2 物件呼叫 var obj obj.f fn obj.f this obj3 定時器呼叫 因為fn不是我們自己手寫 呼叫的 底層是win...