今天給你們講下nginx的基礎配置,不少小夥伴在開發的過程當中會使用到 nginx ,可是確對 nginx 的配置其實並不瞭解,今天我給你們講下基礎的配置項.nginx 的功能不少,可是說到 nginx 你們最早想到的是反向代理和負載均衡.
"負載均衡"在開發環境體現的不太明顯,主要是爲了解決生產環境的客戶端請求不少的時候,動態的去分散給各個服務器,緩解服務器壓力,充 分利用資源.而說到 "反向代理",你的第一反應應該是"正向代理",簡稱"代理",你能夠把代理想象成客戶端和服務端的中介,代理的種類不少,比較常見的是,客戶端對服務端進行請求的時候,代理會對請求的內容進行下載緩存,從而提升客戶端的請求速度,代理還有多重代理,加密處理等功能,"反向代理"的做用和正項代理的功能相輔相成,原理也相似,反向代理將字符串和相應的服務器和端口匹配上,從而獲取用戶想要獲取的內容,那麼這二者的區分是什麼呢,"正向代理"做用於客戶端,"反向代理"做用於服務器.前端
爲了讓你們可以更加深入的理解代理和反向代理的模式,咱們引用下知乎上車小胖的回答nginx
有了第三方訂餐外賣平臺(代理),老王懶得動身前往飯店,老王打個電話或用APP,先選好某個飯店,再點好菜,外賣小哥會送上門來。因爲某個品牌的飯店口碑特別好,食客絡繹不絕涌入,第三方訂餐電話也不絕於耳,可是限於飯店接待能力有限,沒法提供及時服務,不少食客等得不耐煩了,紛紛鎩羽而歸,飯店老總看着煮熟的鴨子飛走了,心疼不已。痛定思痛,老總又成立了幾個連鎖飯店,造成一個集羣,對外提供統一標準的菜品服務,電話訂餐電話400-xxx-7777,當食客涌入飯店總檯,總檯將食客用大巴運到各個連鎖店,這樣食客既不須要排隊,各連鎖店都能高速運轉起來,一箭雙鵰,老總樂開了花,併爲此種運做模式起名爲「反向代理」(Reverse Proxy)。
好了,瞭解了 nginx 的一些概念以後,咱們要開始切入今天的主題,"ngix 的基礎配置",安裝好 nginx 配置以後,你對 nginx 的配置都寫在 nginx.conf 的文件裏,從 nginx 的配置指令做用域來說,咱們分爲 5 個做用域塊,分別是:web
在 "全局做用域塊" 做用域塊中配置通用的nginx 配置,好比 nginx 的用戶組信息,nginx 的併發進程數,日誌存放位置等,nginx 的用戶組信息配置,用來控制啓動 nginx 的權限,服務併發通常狀況下是越多越好,可是當超過硬件的承受範圍時會拔苗助長,因此通常咱們會配置爲 auto,這樣 nginx 會去檢查硬件的信息,啓用適當的進程數量.緩存
日誌存放位置你也能夠配置在 http 做用域塊,"http 做用域塊"做用域一般是配置請求相關的內容,好比數據的傳輸,對同一個接口的請求次數上線,配置請求的潮溼時間,還有是否要對請求進行 gzip 壓縮等.在以前講 web性能優化的時候,我記得和你們講過 gzip 壓縮是提升 web 性能優化的一種手段,gzip 能對 http 請求的請求頭和請求體進行壓縮,從而達到優化.可是不是全部的請求都要去壓縮,有些壓縮以後的請求體積可能會更大,從而達不到壓縮的效果.那怎麼辦呢,在 nginx 的配置中,你能夠進行配置,設置當請求大於必定值的時候,才觸發 gzip 壓縮 gzip 的內容這裏就深刻講解了,想要了解的同窗能夠去谷歌下,或則在下次 nginx 的高級配置的分享的時候咱們再來細講.性能優化
在 event 模塊咱們一般會配置進程的鏈接數量,就是每個worker進程能併發處理(發起)的最大鏈接數.在 "server 指令做用域塊" 咱們能夠進行獨立項目的代理配置,服務器
一個 http 指令中能夠包含多個 server ,每個 server 你能夠看作是一個虛擬機,部署過網站的同窗應該知道,若果你沒有作代理,你的服務器只能部署一個項目的內容,默認是80端口,使用代理,能將客戶端的請求根據端口做爲區分,發散到不一樣的項目中.nginx 這一點,能讓咱們更好的利用服務器資源併發
在server 指令中,咱們一樣能夠配置多個 location 指令,location 指令能將咱們的字符串請求解析到對應的IP和端口,從而去獲取正確的資源,location 也能夠進行特殊配置,定製 網站的 404 ,500 等頁面.負載均衡
咱們簡單的看下,我目前使用到的兩個項目的 nginx 配置,在fengdai_pc 項目中咱們經過 listen 來配置項目監聽端口,經過 root 來配置前端項目文件的地址,咱們還經過 location 來配置了幾個模塊代理,account 和 funds ,定製了 404 頁面,在 另外一個 nginx 配置項目中咱們作了https 配置,配置了域名 baibatianpc.com
,而且指定了證書的位置,這樣配置後,咱們能經過 訪問 https://baibatianpc.com/ 來查看咱們的項目.這裏對於如何搭建 https 環境就不細講了,不一樣的開發系統證書的獲取和配置方式也不太同樣,想要深刻了解的同窗繼續谷歌.性能
好了,咱們今天講了nginx 的基礎配置,咱們如今來複習一下,咱們今天講的知識點有哪些優化
你都掌握了嗎