Nginx服務(wù)快速入門
目錄
一铺纽、Nginx介紹
1. 什么是Nginx哟忍?
Nginx?(engine x) 是一個高性能的?HTTP?和?反向代理?web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)锅很。
其特點是占有內(nèi)存少,并發(fā)能力強爆安,事實上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好叛复。
2. 為什么要使用Nginx扔仓?
隨著當(dāng)今互聯(lián)網(wǎng)的迅速發(fā)展,單點服務(wù)器早已無法承載上萬個乃至數(shù)十萬個用戶的持續(xù)訪問翘簇。比如一臺Tomcat服務(wù)器在理想狀態(tài)下只能夠可以承受住2000個左右的并發(fā)量,為了解決這個問題版保,就需要多臺Tomcat服務(wù)器來進(jìn)行負(fù)載均衡。
那么彻犁,應(yīng)該如何實現(xiàn)負(fù)載均衡?Nginx就是其中的一種解決方案汞幢,當(dāng)用戶訪問網(wǎng)站時驼鹅,Nginx攔截到這個訪問請求,并將其通過輪詢的方式均勻地分配到不同的服務(wù)器上谤民。
并且,在Nginx中有一種ip_hash策略张足,它可以獲取到用戶的真實IP,計算出hash值來選擇服務(wù)器为牍,這也是一種優(yōu)秀的負(fù)載均衡方式。 所以碉咆,掌握Nginx成為了Web開發(fā)學(xué)習(xí)道路上不可缺少的一部分。
3. 什么是正向代理疫铜?
正向代理,就是客戶端將自己的請求率先發(fā)給代理服務(wù)器壳咕,通過代理服務(wù)器將請求轉(zhuǎn)發(fā)給服務(wù)器。我們常用的VPN就是一種代理服務(wù)器谓厘,為了可以連上國外的網(wǎng)站,客戶端需要使用一個可以連接外網(wǎng)的服務(wù)器作為代理竟稳,并且客戶端能夠連接上該代理服務(wù)器。
4. 什么是反向代理他爸?
反向代理與正向代理不同,正向代理是代理了客戶端诊笤,而反向代理則是代理服務(wù)器端。在有多臺服務(wù)器分布的情況下盏混,為了能讓客戶端訪問到的IP地址都為同一個網(wǎng)站,就需要使用反向代理许赃。
明白了反向代理的工作機(jī)制后,接下來就可以進(jìn)入Nginx的學(xué)習(xí)混聊!
二、Nginx在Linux下的安裝
由于Nginx被大量使用在Web服務(wù)器中,所以本教程選擇了Centos服務(wù)器的7.4版本作為演示预愤!
1. 下載
進(jìn)入官方下載頁面: 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文件夾,啟動nginx服務(wù)冗栗,訪問服務(wù)器默認(rèn)的80端口查看是否安裝成功!
三隅居、Nginx配置入門
1. 配置文件
在Nginx的安裝目錄下有一個conf文件夾,打開其中的nginx.conf文件
cdconf/ && vim nginx.conf
2. 反向代理單個服務(wù)器
那么军浆,如何使用Nginx進(jìn)行反向代理挡闰?
在location參數(shù)中添加proxy_pass字段乒融,并填寫需要反向代理的服務(wù)器地址與端口號:
注意:每一行的配置都需要以封號結(jié)尾I忝酢!奢驯!
# 配置監(jiān)聽的目錄為:/location/ {roothtml;indexindex.html index.htm;proxy_passhttp://127.0.0.1:8080;# 反向代理了本機(jī)的8080端口# proxy_pass http://127.0.0.1:8081;? # 可以同時配置多條proxy_pass,反向代理了本機(jī)的8081端口}
3. 反向代理多臺服務(wù)器
如果有多臺服務(wù)器怎么辦瘪阁?除了不斷地添加proxy_pass參數(shù),更好的解決方案是配置upstream服務(wù)器組管跺!
在配置文件的http塊中添加upstream屬性:
# 配置服務(wù)器組义黎,取名為helloupstreamhello{# 一個server對應(yīng)一個服務(wù)器豁跑,當(dāng)然也可以是不同端口的web程序server127.0.0.1:8080;server127.0.0.1:8081;}# 在location塊中修改反向代理為服務(wù)器組location/ {roothtml;indexindex.html index.htm;proxy_passhttp://hello;# 反向代理了hello服務(wù)器組中的所有服務(wù)器}
四、運行測試
1. 啟動服務(wù)
配置完成后,進(jìn)入Nginx安裝目錄下的sbin文件夾狐蜕,運行nginx程序即可:
/usr/local/nginx/sbin/nginx
如果之前已經(jīng)啟動,無需關(guān)閉nginx服務(wù)层释,只需要讓nginx重新加載配置文件即可:
nginx-s reload
刷新瀏覽器,若反向代理成功湃累,訪問的路徑會自動映射到配置文件中的服務(wù)器地址!
將來治力,隨著用戶量的增長蒙秒,可能需要添加新的服務(wù)器宵统;這時只需要修改配置文件,使用?nginx -s reload?命令即可马澈,無需關(guān)閉nginx服務(wù)器瓢省!
2. 關(guān)閉服務(wù)
關(guān)閉nginx服務(wù)的方式一般分為兩種:
nginx-s stop# 立即停止痊班,無論是否在工作nginx -s quit# 等待進(jìn)程完成當(dāng)前工作后安全退出
五、負(fù)載均衡
1. 什么是負(fù)載均衡涤伐?
由于不同服務(wù)器的配置不同,為了讓性能高的服務(wù)器分配到更多的請求凝果,便引入了負(fù)載均衡的概念祝迂。
前面提到過器净,Nginx的負(fù)載均衡方式可以有很多種,如?加權(quán)輪詢(默認(rèn))?山害、IP哈希纠俭、url哈希等等浪慌,這里就以加權(quán)輪詢作為介紹。
加權(quán)輪詢,也就是通過給服務(wù)器添加各自的權(quán)重值,Nginx通過權(quán)重來進(jìn)行請求的分配,權(quán)重越高接收到的請求數(shù)量越多猴仑,反之越少:
上圖配置了三臺服務(wù)器芥被,在加權(quán)輪詢的模式下坐榆,6次不同的請求中拴魄,權(quán)重為3的服務(wù)器將會分配到3次請求席镀,權(quán)重為2的服務(wù)器會分配到2個請求匹中,權(quán)重為1的服務(wù)器則會分配到1個請求豪诲。負(fù)載均衡大大減少了在高并發(fā)的環(huán)境下服務(wù)器宕機(jī)的風(fēng)險!
2. 配置Nginx負(fù)載均衡
同樣地屎篱,打開nginx.conf文件進(jìn)行配置:
vimnginx.conf
在upstream塊中添加weight參數(shù):
upstreamhello{server服務(wù)器1:8080weight=3;# 配置服務(wù)器1的權(quán)重為3server服務(wù)器2:8080weight=1;# 配置服務(wù)器2的權(quán)重為1}
原文鏈接:
http://www.cnblogs.com/ljr825010/p/14351625.html