Nginx服務(wù)快速入門教程
一、Nginx介紹
1. 什么是Nginx?
- Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。
- 其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好。
2. 為什么要使用Nginx?
隨著當(dāng)今互聯(lián)網(wǎng)的迅速發(fā)展,單點(diǎn)服務(wù)器早已無(wú)法承載上萬(wàn)個(gè)乃至數(shù)十萬(wàn)個(gè)用戶的持續(xù)訪問(wèn)。比如一臺(tái)Tomcat服務(wù)器在理想狀態(tài)下只能夠可以承受住2000個(gè)左右的并發(fā)量,為了解決這個(gè)問(wèn)題,就需要多臺(tái)Tomcat服務(wù)器來(lái)進(jìn)行負(fù)載均衡。
那么,應(yīng)該如何實(shí)現(xiàn)負(fù)載均衡?Nginx就是其中的一種解決方案,當(dāng)用戶訪問(wèn)網(wǎng)站時(shí),Nginx攔截到這個(gè)訪問(wèn)請(qǐng)求,并將其通過(guò)輪詢的方式均勻地分配到不同的服務(wù)器上。

并且,在Nginx中有一種ip_hash策略,它可以獲取到用戶的真實(shí)IP,計(jì)算出hash值來(lái)選擇服務(wù)器,這也是一種優(yōu)秀的負(fù)載均衡方式。 所以,掌握Nginx成為了Web開發(fā)學(xué)習(xí)道路上不可缺少的一部分。
3. 什么是正向代理?
正向代理,就是客戶端將自己的請(qǐng)求率先發(fā)給代理服務(wù)器,通過(guò)代理服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器。我們常用的VPN就是一種代理服務(wù)器,為了可以連上國(guó)外的網(wǎng)站,客戶端需要使用一個(gè)可以連接外網(wǎng)的服務(wù)器作為代理,并且客戶端能夠連接上該代理服務(wù)器。

4. 什么是反向代理?
反向代理與正向代理不同,正向代理是代理了客戶端,而反向代理則是代理服務(wù)器端。在有多臺(tái)服務(wù)器分布的情況下,為了能讓客戶端訪問(wèn)到的IP地址都為同一個(gè)網(wǎng)站,就需要使用反向代理。

明白了反向代理的工作機(jī)制后,接下來(lái)就可以進(jìn)入Nginx的學(xué)習(xí)!
二、Nginx在Linux下的安裝
由于Nginx被大量使用在Web服務(wù)器中,所以本教程選擇了Centos服務(wù)器的7.4版本作為演示!
1. 下載
進(jìn)入官方下載頁(yè)面:http://nginx.org/en/download.html,選擇Stable version穩(wěn)定版本進(jìn)行下載,并上傳至服務(wù)器。

2. 安裝
上傳tar包至服務(wù)器后,解壓到當(dāng)前目錄
tar -zxvf nginx-1.18.0.tar.gz -C ./
進(jìn)入解壓后的目錄,執(zhí)行configure腳本
cd nginx-1.18.0/ ./configure
使用make命令進(jìn)行安裝
make && make install
安裝完成后,使用whereis命令查找Nginx的安裝位置 (默認(rèn)安裝在/user/local/目錄下)
whereis nginx
進(jìn)入安裝目錄下的bin文件夾,啟動(dòng)nginx服務(wù),訪問(wèn)服務(wù)器默認(rèn)的80端口查看是否安裝成功!

三、Nginx配置入門
1. 配置文件
在Nginx的安裝目錄下有一個(gè)conf文件夾,打開其中的nginx.conf文件
cd conf/ && vim nginx.conf

2. 反向代理單個(gè)服務(wù)器
那么,如何使用Nginx進(jìn)行反向代理?
在location參數(shù)中添加proxy_pass字段,并填寫需要反向代理的服務(wù)器地址與端口號(hào):
注意:每一行的配置都需要以封號(hào)結(jié)尾?。。?/p>
# 配置監(jiān)聽的目錄為:/
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080; # 反向代理了本機(jī)的8080端口
# proxy_pass http://127.0.0.1:8081; # 可以同時(shí)配置多條proxy_pass,反向代理了本機(jī)的8081端口
}
3. 反向代理多臺(tái)服務(wù)器
如果有多臺(tái)服務(wù)器怎么辦?除了不斷地添加proxy_pass參數(shù),更好的解決方案是配置upstream服務(wù)器組!
在配置文件的http塊中添加upstream屬性:
# 配置服務(wù)器組,取名為hello
upstream hello{
# 一個(gè)server對(duì)應(yīng)一個(gè)服務(wù)器,當(dāng)然也可以是不同端口的web程序
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
# 在location塊中修改反向代理為服務(wù)器組
location / {
root html;
index index.html index.htm;
proxy_pass http://hello; # 反向代理了hello服務(wù)器組中的所有服務(wù)器
}
四、運(yùn)行測(cè)試
1. 啟動(dòng)服務(wù)
配置完成后,進(jìn)入Nginx安裝目錄下的sbin文件夾,運(yùn)行nginx程序即可:
/usr/local/nginx/sbin/nginx
如果之前已經(jīng)啟動(dòng),無(wú)需關(guān)閉nginx服務(wù),只需要讓nginx重新加載配置文件即可:
nginx -s reload
刷新瀏覽器,若反向代理成功,訪問(wèn)的路徑會(huì)自動(dòng)映射到配置文件中的服務(wù)器地址!
將來(lái),隨著用戶量的增長(zhǎng),可能需要添加新的服務(wù)器;這時(shí)只需要修改配置文件,使用 nginx -s reload 命令即可,無(wú)需關(guān)閉nginx服務(wù)器!
2. 關(guān)閉服務(wù)
關(guān)閉nginx服務(wù)的方式一般分為兩種:
nginx -s stop # 立即停止,無(wú)論是否在工作 nginx -s quit # 等待進(jìn)程完成當(dāng)前工作后安全退出
五、負(fù)載均衡
1. 什么是負(fù)載均衡?
由于不同服務(wù)器的配置不同,為了讓性能高的服務(wù)器分配到更多的請(qǐng)求,便引入了負(fù)載均衡的概念。
前面提到過(guò),Nginx的負(fù)載均衡方式可以有很多種,如加權(quán)輪詢(默認(rèn))、IP哈希、url哈希等等,這里就以加權(quán)輪詢作為介紹。
加權(quán)輪詢,也就是通過(guò)給服務(wù)器添加各自的權(quán)重值,Nginx通過(guò)權(quán)重來(lái)進(jìn)行請(qǐng)求的分配,權(quán)重越高接收到的請(qǐng)求數(shù)量越多,反之越少:

上圖配置了三臺(tái)服務(wù)器,在加權(quán)輪詢的模式下,6次不同的請(qǐng)求中,權(quán)重為3的服務(wù)器將會(huì)分配到3次請(qǐng)求,權(quán)重為2的服務(wù)器會(huì)分配到2個(gè)請(qǐng)求,權(quán)重為1的服務(wù)器則會(huì)分配到1個(gè)請(qǐng)求。負(fù)載均衡大大減少了在高并發(fā)的環(huán)境下服務(wù)器宕機(jī)的風(fēng)險(xiǎn)!
2. 配置Nginx負(fù)載均衡
同樣地,打開nginx.conf文件進(jìn)行配置:
vim nginx.conf
在upstream塊中添加weight參數(shù):
upstream hello{
server 服務(wù)器1:8080 weight=3; # 配置服務(wù)器1的權(quán)重為3
server 服務(wù)器2:8080 weight=1; # 配置服務(wù)器2的權(quán)重為1
}
添加完成后執(zhí)行 nginx -s reload 即可!
以上就是Nginx服務(wù)快速入門教程的詳細(xì)內(nèi)容,更多關(guān)于nginx入門教程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- nginx 基本入門教程
- Nginx配置入門教程
- windows下nginxHTTP服務(wù)器入門教程初級(jí)篇
- Nginx 負(fù)載均衡是什么以及該如何配置
- Nginx優(yōu)化服務(wù)之網(wǎng)頁(yè)壓縮的實(shí)現(xiàn)方法
- nginx優(yōu)化的六點(diǎn)方法
- Nginx解決前端訪問(wèn)資源跨域問(wèn)題的方法詳解
- 解決Nginx 配置 proxy_pass 后 返回404問(wèn)題
- 基于Nginx實(shí)現(xiàn)限制某IP短時(shí)間訪問(wèn)次數(shù)
- Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析
相關(guān)文章
WebSocket 配置與Nginx 的完美結(jié)合(過(guò)程詳解)
本文詳細(xì)介紹了如何在Nginx中配置WebSocket,確保其在生產(chǎn)環(huán)境中的性能與穩(wěn)定性,從安裝Nginx開始,到基本配置的設(shè)定,再到重啟Nginx應(yīng)用配置,同時(shí),介紹了多種驗(yàn)證WebSocket配置正確性的方法,如使用瀏覽器的開發(fā)者工具、wscat測(cè)試工具及編寫客戶端代碼2024-11-11
強(qiáng)大的 Web 應(yīng)?服務(wù)器OpenResty安裝(Nginx倉(cāng)庫(kù))
OpenResty 是?個(gè)強(qiáng)大的 Web 應(yīng)?服務(wù)器,Web 開發(fā)?員可以使用 Lua 腳本語(yǔ)?調(diào)動(dòng) Nginx ?持的各種 C 以及 Lua 模塊,更主要的是在性能方面,OpenResty可以快速構(gòu)造出足以勝任 10K 以上并發(fā)連接響應(yīng)的超高性能 Web 應(yīng)用系統(tǒng)2023-06-06
Nginx配置網(wǎng)站適配PC和手機(jī)的幾種方法
在開發(fā)中,我們常常會(huì)遇到需要根據(jù)用戶設(shè)備的不同,返回對(duì)應(yīng)樣式的頁(yè)面,本文主要介紹了Nginx配置網(wǎng)站適配PC和手機(jī)的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08
Nginx listen 監(jiān)聽端口的實(shí)現(xiàn)配置
本文將介紹Nginx的listen指令及其在配置文件中的應(yīng)用,通過(guò)了解listen指令,我們可以知道Nginx如何監(jiān)聽端口,并配置相應(yīng)的服務(wù)器塊來(lái)處理進(jìn)入的請(qǐng)求2023-12-12
Nginx對(duì)網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解
這篇文章主要介紹了Nginx對(duì)網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

