摘要:初探今天給大家講下的基礎(chǔ)配置很多小伙伴在開發(fā)的過程中會使用到但是確對的配置其實并不了解今天我給大家講下基礎(chǔ)的配置項的功能很多但是說到大家最先想到的是反向代理和負(fù)載均衡負(fù)載均衡在開發(fā)環(huán)境體現(xiàn)的不太明顯主要是為了解決生產(chǎn)環(huán)境的客戶端請求很多的時
初探nginx
今天給大家講下nginx的基礎(chǔ)配置,很多小伙伴在開發(fā)的過程中會使用到 nginx ,但是確對 nginx 的配置其實并不了解,今天我給大家講下基礎(chǔ)的配置項.nginx 的功能很多,但是說到 nginx 大家最先想到的是反向代理和負(fù)載均衡.
"負(fù)載均衡"在開發(fā)環(huán)境體現(xiàn)的不太明顯,主要是為了解決生產(chǎn)環(huán)境的客戶端請求很多的時候,動態(tài)的去分散給各個服務(wù)器,緩解服務(wù)器壓力,充 分利用資源.而說到 "反向代理",你的第一反應(yīng)應(yīng)該是"正向代理",簡稱"代理",你可以把代理想象成客戶端和服務(wù)端的中介,代理的種類很多,比較常見的是,客戶端對服務(wù)端進(jìn)行請求的時候,代理會對請求的內(nèi)容進(jìn)行下載緩存,從而提高客戶端的請求速度,代理還有多重代理,加密處理等功能,"反向代理"的作用和正項代理的功能相輔相成,原理也類似,反向代理將字符串和相應(yīng)的服務(wù)器和端口匹配上,從而獲取用戶想要獲取的內(nèi)容,那么這兩者的區(qū)分是什么呢,"正向代理"作用于客戶端,"反向代理"作用于服務(wù)器.
生動的 nginx 反向代理解釋為了讓大家能夠更加深刻的理解代理和反向代理的模式,我們引用下知乎上車小胖的回答
有了第三方訂餐外賣平臺(代理),老王懶得動身前往飯店,老王打個電話或用APP,先選好某個飯店,再點好菜,外賣小哥會送上門來。由于某個品牌的飯店口碑特別好,食客絡(luò)繹不絕涌入,第三方訂餐電話也不絕于耳,但是限于飯店接待能力有限,無法提供及時服務(wù),很多食客等得不耐煩了,紛紛鎩羽而歸,飯店老總看著煮熟的鴨子飛走了,心疼不已。痛定思痛,老總又成立了幾個連鎖飯店,形成一個集群,對外提供統(tǒng)一標(biāo)準(zhǔn)的菜品服務(wù),電話訂餐電話400-xxx-7777,當(dāng)食客涌入飯店總臺,總臺將食客用大巴運(yùn)到各個連鎖店,這樣食客既不需要排隊,各連鎖店都能高速運(yùn)轉(zhuǎn)起來,一舉兩得,老總樂開了花,并為此種運(yùn)作模式起名為“反向代理”(Reverse Proxy)。nginx 基礎(chǔ)配置
好了,了解了 nginx 的一些概念之后,我們要開始切入今天的主題,"ngix 的基礎(chǔ)配置",安裝好 nginx 配置之后,你對 nginx 的配置都寫在 nginx.conf 的文件里,從 nginx 的配置指令作用域來講,我們分為 5 個作用域塊,分別是:
全局作用域塊
event 作用域塊
http 指令作用域塊
server 指令作用域塊
location 指令作用域塊
在 "全局作用域塊" 作用域塊中配置通用的nginx 配置,比如 nginx 的用戶組信息,nginx 的并發(fā)進(jìn)程數(shù),日志存放位置等,nginx 的用戶組信息配置,用來控制啟動 nginx 的權(quán)限,服務(wù)并發(fā)一般情況下是越多越好,但是當(dāng)超過硬件的承受范圍時會適得其反,所以一般我們會配置為 auto,這樣 nginx 會去檢查硬件的信息,啟用適當(dāng)?shù)倪M(jìn)程數(shù)量.
日志存放位置你也可以配置在 http 作用域塊,"http 作用域塊"作用域通常是配置請求相關(guān)的內(nèi)容,比如數(shù)據(jù)的傳輸,對同一個接口的請求次數(shù)上線,配置請求的潮濕時間,還有是否要對請求進(jìn)行 gzip 壓縮等.在之前講 web性能優(yōu)化的時候,我記得和大家講過 gzip 壓縮是提高 web 性能優(yōu)化的一種手段,gzip 能對 http 請求的請求頭和請求體進(jìn)行壓縮,從而達(dá)到優(yōu)化.但是不是所有的請求都要去壓縮,有些壓縮之后的請求體積可能會更大,從而達(dá)不到壓縮的效果.那怎么辦呢,在 nginx 的配置中,你可以進(jìn)行配置,設(shè)置當(dāng)請求大于一定值的時候,才觸發(fā) gzip 壓縮 gzip 的內(nèi)容這里就深入講解了,想要了解的同學(xué)可以去谷歌下,或則在下次 nginx 的高級配置的分享的時候我們再來細(xì)講.
在 event 模塊我們通常會配置進(jìn)程的連接數(shù)量,就是每一個worker進(jìn)程能并發(fā)處理(發(fā)起)的最大連接數(shù).在 "server 指令作用域塊" 我們可以進(jìn)行獨(dú)立項目的代理配置,
一個 http 指令中可以包含多個 server ,每一個 server 你可以看做是一個虛擬機(jī),部署過網(wǎng)站的同學(xué)應(yīng)該知道,若果你沒有做代理,你的服務(wù)器只能部署一個項目的內(nèi)容,默認(rèn)是80端口,使用代理,能將客戶端的請求根據(jù)端口作為區(qū)分,發(fā)散到不同的項目中.nginx 這一點,能讓我們更好的利用服務(wù)器資源
在server 指令中,我們同樣可以配置多個 location 指令,location 指令能將我們的字符串請求解析到對應(yīng)的IP和端口,從而去獲取正確的資源,location 也可以進(jìn)行特殊配置,定制 網(wǎng)站的 404 ,500 等頁面.
nginx 的項目配置示例我們簡單的看下,我目前使用到的兩個項目的 nginx 配置,在fengdai_pc 項目中我們通過 listen 來配置項目監(jiān)聽端口,通過 root 來配置前端項目文件的地址,我們還通過 location 來配置了幾個模塊代理,account 和 funds ,定制了 404 頁面,在 另一個 nginx 配置項目中我們做了https 配置,配置了域名 baibatianpc.com,并且指定了證書的位置,這樣配置后,我們能通過 訪問 https://baibatianpc.com/ 來查看我們的項目.這里對于如何搭建 https 環(huán)境就不細(xì)講了,不同的開發(fā)系統(tǒng)證書的獲取和配置方式也不太一樣,想要深入了解的同學(xué)繼續(xù)谷歌.
復(fù)習(xí)好了,我們今天講了nginx 的基礎(chǔ)配置,我們現(xiàn)在來復(fù)習(xí)一下,我們今天講的知識點有哪些
nginx 常用的功能的概念,負(fù)載均衡,反向代理
nginx 指令配置的5個作用域空間
nginx 的每個配置作用域的基礎(chǔ)配置項目
簡單的兩個項目配置示例
你都掌握了嗎
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/39566.html
摘要:地址這是一份適用于生產(chǎn)和開發(fā)環(huán)境的。目前已經(jīng)在我司的生產(chǎn)環(huán)境上并運(yùn)行良好。日常開發(fā)中也是基于此鏡像進(jìn)行的。如果想快速看看鏡像里有啥東西,只需要運(yùn)行其中替換成你實際的鏡像。開發(fā)環(huán)境的使用單獨(dú)運(yùn)行這個容器是沒有意義的。 GITHUB地址:https://github.com/banyancheu... 這是一份適用于生產(chǎn)和開發(fā)環(huán)境的 Dockerfile。 在 phuison/baseim...
摘要:地址這是一份適用于生產(chǎn)和開發(fā)環(huán)境的。目前已經(jīng)在我司的生產(chǎn)環(huán)境上并運(yùn)行良好。日常開發(fā)中也是基于此鏡像進(jìn)行的。如果想快速看看鏡像里有啥東西,只需要運(yùn)行其中替換成你實際的鏡像。開發(fā)環(huán)境的使用單獨(dú)運(yùn)行這個容器是沒有意義的。 GITHUB地址:https://github.com/banyancheu... 這是一份適用于生產(chǎn)和開發(fā)環(huán)境的 Dockerfile。 在 phuison/baseim...
摘要:場景最近一直在做一個養(yǎng)老項目,符合時代發(fā)展,此項目為一個前后端分離的項目,對于后臺的部署比較熟悉,說到前端的靜態(tài)資源部署一時間有點蒙圈,后來查閱資料發(fā)現(xiàn),其實很簡單。 場景 最近一直在做一個養(yǎng)老項目,符合時代發(fā)展,此項目為一個前后端分離的項目,對于后臺的部署比較熟悉,說到前端的靜態(tài)資源部署一時間有點蒙圈,后來查閱資料發(fā)現(xiàn),其實很簡單。 前提 工具 基礎(chǔ)知識 工具 軟件推薦本地與服務(wù)...
摘要:第一階段基礎(chǔ)階段基礎(chǔ)程序員重點把搞熟練核心是安裝配置基本操作目標(biāo)能夠完成基本的系統(tǒng)安裝,簡單配置維護(hù)能夠做基本的簡單系統(tǒng)的開發(fā)能夠在中型系統(tǒng)中支持某個功能模塊的開發(fā)。本項不做重點學(xué)習(xí),除非對前端有興趣。 第一階段:基礎(chǔ)階段(基礎(chǔ)PHP程序員) 重點:把LNMP搞熟練(核心是安裝配置基本操作) 目標(biāo):能夠完成基本的LNMP系統(tǒng)安裝,簡單配置維護(hù);能夠做基本的簡單系統(tǒng)的PHP開發(fā);能夠在P...
閱讀 3162·2023-04-25 17:19
閱讀 616·2021-11-23 09:51
閱讀 1339·2021-11-08 13:19
閱讀 776·2021-09-29 09:34
閱讀 1673·2021-09-28 09:36
閱讀 1494·2021-09-22 14:59
閱讀 2707·2019-08-29 16:38
閱讀 2053·2019-08-26 13:40