一文帶你搞懂什么是Nginx服務(wù)器
目錄
- 一、Nginx是什么?
- 二、Nginx的反向代理(擴(kuò)展:正向代理)
- 三、Nginx的負(fù)載均衡
- 什么是負(fù)載均衡?
- 四、Nginx的動(dòng)靜分離!
- 五、Nginx的安裝
- windows版本下的安裝
- 下載
- 啟動(dòng)
- 檢查是否安裝成功
- 配置監(jiān)聽
- 關(guān)閉Nginx
- Linux版本下的安裝
- 解壓
- 配置
- 啟動(dòng)
- 六、Nginx常用命令
一、Nginx是什么?
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈?duì)?middot;賽索耶夫?yàn)槎砹_斯訪問量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開發(fā)的,第一個(gè)公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、簡(jiǎn)單的配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。
Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好,中國(guó)大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
Nginx 是高性能的 HTTP 和反向代理的web服務(wù)器,處理高并發(fā)能力是十分強(qiáng)大的,能經(jīng)受高負(fù) 載的考驗(yàn),有報(bào)告表明能支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)。
Nginx支持熱部署,啟動(dòng)簡(jiǎn)單,可以做到7*24不間斷運(yùn)行。幾個(gè)月都不需要重新啟動(dòng)。
二、Nginx的反向代理(擴(kuò)展:正向代理)
首先,看一張關(guān)于正向代理和反向代理的圖片
在這里,用通俗易懂的方式解釋一下:
正向代理: 我們平時(shí)需要訪問國(guó)外的瀏覽器是不是很慢,比如我們要看推特,看GitHub等等。我們直接用國(guó)內(nèi)的服務(wù)器無(wú)法訪問國(guó)外的服務(wù)器,或者是訪問很慢。所以我們需要在本地搭建一個(gè)服務(wù)器來(lái)幫助我們?nèi)ピL問。那這種就是正向代理。(瀏覽器中配置代理服務(wù)器)
反向代理: 那什么是反向代理呢。比如:我們?cè)L問淘寶的時(shí)候,淘寶內(nèi)部肯定不是只有一臺(tái)服務(wù)器,它的內(nèi)部有很多臺(tái)服務(wù)器,那我們進(jìn)行訪問的時(shí)候,因?yàn)榉?wù)器中間session不共享,那我們是不是在服務(wù)器之間訪問需要頻繁登錄,那這個(gè)時(shí)候淘寶搭建一個(gè)過渡服務(wù)器,對(duì)我們是沒有任何影響的,我們是登錄一次,但是訪問所有,這種情況就是 反向代理。對(duì)我們來(lái)說(shuō),客戶端對(duì)代理是無(wú)感知的,客戶端不需要任何配置就可以訪問,我們只需要把請(qǐng)求發(fā)送給反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,再返回給客戶端,此時(shí)反向代理服務(wù)器和目標(biāo)服務(wù)器對(duì)外就是一個(gè)服務(wù)器,暴露的是代理服務(wù)器地址,隱藏了真實(shí)服務(wù)器的地址。(在服務(wù)器中配置代理服務(wù)器)
三、Nginx的負(fù)載均衡
什么是負(fù)載均衡?
負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。 負(fù)載均衡(Load Balance)其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。
簡(jiǎn)單來(lái)說(shuō)就是:現(xiàn)有的請(qǐng)求使服務(wù)器壓力太大無(wú)法承受,所有我們需要搭建一個(gè)服務(wù)器集群,去分擔(dān)原先一個(gè)服務(wù)器所承受的壓力,那現(xiàn)在我們有ABCD等等多臺(tái)服務(wù)器,我們需要把請(qǐng)求分給這些服務(wù)器,但是服務(wù)器可能大小也有自己的不同,所以怎么分?如何分配更好?又是一個(gè)問題。
Nginx給出來(lái)三種關(guān)于負(fù)載均衡的方式:
- 輪詢法(默認(rèn)方法): 每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。 適合服務(wù)器配置相當(dāng),無(wú)狀態(tài)且短平快的服務(wù)使用。也適用于圖片服務(wù)器集群和純靜態(tài)頁(yè)面服務(wù)器集群。
- weight權(quán)重模式(加權(quán)輪詢): 指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的 情況。 這種方式比較靈活,當(dāng)后端服務(wù)器性能存在差異的時(shí)候,通過配置權(quán)重,可以讓服務(wù)器的性能得到充分發(fā)揮,有效利用資源。weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。權(quán)重越高,在被訪問的概率越大
- ip_hash: 上述方式存在一個(gè)問題就是說(shuō),在負(fù)載均衡系統(tǒng)中,假如用戶在某臺(tái)服務(wù)器上登錄了,那么該用戶第二次請(qǐng)求的時(shí)候,因?yàn)槲覀兪秦?fù)載均衡系統(tǒng),每次請(qǐng)求都會(huì)重新定位到服務(wù)器集群中的某一個(gè),那么已經(jīng)登錄某一個(gè)服務(wù)器的用戶再重新定位到另一個(gè)服務(wù)器,其登錄信息將會(huì)丟失,這樣顯然是不妥的。 我們可以采用ip_hash指令解決這個(gè)問題,如果客戶已經(jīng)訪問了某個(gè)服務(wù)器,當(dāng)用戶再次訪問時(shí),會(huì)將該請(qǐng)求通過哈希算法,自動(dòng)定位到該服務(wù)器。每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session的問題。
四、Nginx的動(dòng)靜分離!
Nginx的靜態(tài)處理能力很強(qiáng),但是動(dòng)態(tài)處理能力不足,因此,在企業(yè)中常用動(dòng)靜分離技術(shù)。動(dòng)靜分離技術(shù)其實(shí)是采用代理的方式,在server{}段中加入帶正則匹配的location來(lái)指定匹配項(xiàng)針對(duì)PHP的動(dòng)靜分離:靜態(tài)頁(yè)面交給Nginx處理,動(dòng)態(tài)頁(yè)面交給PHP-FPM模塊或Apache處理。在Nginx的配置中,是通過location配置段配合正則匹配實(shí)現(xiàn)靜態(tài)與動(dòng)態(tài)頁(yè)面的不同處理方式 目前,通過使用Nginx大大提高了網(wǎng)站的響應(yīng)速度,優(yōu)化了用戶體驗(yàn),讓網(wǎng)站的健壯性更上一層樓!
五、Nginx的安裝
Nginx的跨平臺(tái)的,因此,在任何平臺(tái)都是可以下載的。
windows版本下的安裝
下載
首先去官網(wǎng)下載最新的穩(wěn)定版本:官網(wǎng)下載點(diǎn)我 下載后解壓打卡: 你會(huì)看見一下目錄。
啟動(dòng)
啟動(dòng)方式一:雙擊nginx.exe,雙擊后你能看見一個(gè)小黑窗口一閃而過。
啟動(dòng)方式二:打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe ,回車即可
注意:如果安裝目錄是中文的情況,打開exe文件時(shí)會(huì)報(bào)錯(cuò)。
檢查是否安裝成功
打開瀏覽器:瀏覽器地址欄輸入網(wǎng)址 http://localhost:80 回車,出現(xiàn)以下頁(yè)面說(shuō)明啟動(dòng)成功!
配置監(jiān)聽
nginx的配置文件是conf目錄下的nginx.conf,默認(rèn)配置的nginx監(jiān)聽的端口為80,如果80端口被占用可以修改為未被占用的端口即可。 當(dāng)我們修改了nginx的配置文件nginx.conf 時(shí),不需要關(guān)閉nginx后重新啟動(dòng)nginx,只需要執(zhí)行命令 nginx -s reload 即可讓改動(dòng)生效
關(guān)閉Nginx
如果使用cmd命令窗口啟動(dòng)nginx, 關(guān)閉cmd窗口是不能結(jié)束nginx進(jìn)程的,可使用兩種方法關(guān)閉nginx 方法一:(1)輸入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx),這兩個(gè)命令的區(qū)別在于nginx -s stop是快速停止Nginx,而nginx -s quit是有序的停止Nginx,前者可能會(huì)導(dǎo)致數(shù)據(jù)沒有完全保存;
方法二:(2)使用taskkill taskkill /f /t /im nginx.exe
注意:方法一必須要在Nginx的安裝包目錄下。否則無(wú)法找到Nginx。
這種方法可以直接在cmd命令面板上使用,當(dāng)?shù)谝环N方法無(wú)效時(shí)可以嘗試使用此方法,前第一種方法適用于大部分版本的Nginx,但是個(gè)別版本的可能不實(shí)用,使用taskkill就可解決。
注解:taskkill是用來(lái)終止進(jìn)程的,/f是強(qiáng)制終止 ./t終止指定的進(jìn)程和任何由此啟動(dòng)的子進(jìn)程。/im示指定的進(jìn)程名稱 .
Linux版本下的安裝
下載安裝包: 它后面那個(gè)就是Windows版本下載的。
下載完畢上傳到服務(wù)器上 /root
解壓
tar -zxvf nginx-1.18.0.tar.gzcd nginx-1.18.0
配置
./configuremakemake install
查找安裝路徑: whereis nginx
啟動(dòng)
啟動(dòng)成功訪問 服務(wù)器ip:80
注意:如何連接不上,檢查阿里云安全組是否開放端口,或者服務(wù)器防火墻是否開放端口! 相關(guān)命令:
# 開啟service firewalld start# 重啟service firewalld restart# 關(guān)閉service firewalld stop# 查看防火墻規(guī)則firewall-cmd --list-all# 查詢端口是否開放firewall-cmd --query-port=8080/tcp# 開放80端口firewall-cmd --permanent --add-port=80/tcp# 移除端口firewall-cmd --permanent --remove-port=8080/tcp#重啟防火墻(修改配置后要重啟防火墻)firewall-cmd --reload# 參數(shù)解釋1、firwall-cmd:是Linux提供的操作firewall的一個(gè)工具;2、--permanent:表示設(shè)置為持久;3、--add-port:標(biāo)識(shí)添加的端口;
六、Nginx常用命令
cd /usr/local/nginx/sbin/./nginx 啟動(dòng)./nginx -s stop 停止./nginx -s quit 安全退出./nginx -s reload 重新加載配置文件 如果我們修改了配置文件,就需要重新加載。ps aux|grep nginx 查看nginx進(jìn)程
到此這篇關(guān)于一文帶你搞懂什么是Nginx的文章就介紹到這了,更多相關(guān)Nginx詳解內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
