上篇文章和大家聊了 Spring Session 實(shí)現(xiàn) Session 共享的問題,有的小伙伴看了后表示對(duì) Nginx 還是很懵,因此有了這篇文章,算是一個(gè) Nginx 掃盲入門吧!
基本介紹Nginx 是一個(gè)高性能的 HTTP 和反向代理 web 服務(wù)器,同時(shí)也提供了 IMAP/POP3/SMTP 服務(wù)。
Nginx 是由伊戈?duì)枴べ愃饕驗(yàn)槎砹_斯訪問量第二的 Rambler.ru 站點(diǎn)開發(fā)的,第一個(gè)公開版本 0.1.0 發(fā)布于 2004 年 10 月 4 日。
Nginx 特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng)。
事實(shí)上 nginx 的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好,一般來說,如果我們?cè)陧?xiàng)目中引入了 Nginx ,我們的項(xiàng)目架構(gòu)可能是這樣:
在這樣的架構(gòu)中 , Nginx 所代表的角色叫做負(fù)載均衡服務(wù)器或者反向代理服務(wù)器,所有請(qǐng)求首先到達(dá) Nginx 上,再由 Nginx 根據(jù)提前配置好的轉(zhuǎn)發(fā)規(guī)則,將客戶端發(fā)來的請(qǐng)求轉(zhuǎn)發(fā)到某一個(gè) Tomcat 上去。
那么這里涉及到兩個(gè)概念:
負(fù)載均衡服務(wù)器
就是進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),降低某一個(gè)服務(wù)器的壓力。負(fù)載均衡策略很多,也有很多層,對(duì)于一些大型網(wǎng)站基本上從 DNS 就開始負(fù)載均衡,負(fù)載均衡有硬件和軟件之分,各自代表分別是 F5 和 Nginx (目前 Nginx 已經(jīng)被 F5 收購(gòu)),早些年,也可以使用 Apache 來做負(fù)載均衡,但是效率不如 Nginx ,所以現(xiàn)在主流方案是 Nginx 。
反向代理服務(wù)器:
另一個(gè)概念是反向代理服務(wù)器,得先說正向代理,看下面一張圖:
在這個(gè)過程中,Google 并不知道真正訪問它的客戶端是誰(shuí),它只知道這個(gè)中間服務(wù)器在訪問它。因此,這里的代理,實(shí)際上是中間服務(wù)器代理了客戶端,這種代理叫做正向代理。
那么什么是反向代理呢?看下面一張圖:
在這個(gè)過程中,10086 這個(gè)號(hào)碼相當(dāng)于是一個(gè)代理,真正提供服務(wù)的,是話務(wù)員,但是對(duì)于客戶來說,他不關(guān)心到底是哪一個(gè)話務(wù)員提供的服務(wù),他只需要記得 10086 這個(gè)號(hào)碼就行了。
所有的請(qǐng)求打到 10086 上,再由 10086 將請(qǐng)求轉(zhuǎn)發(fā)給某一個(gè)話務(wù)員去處理。因此,在這里,10086 就相當(dāng)于是一個(gè)代理,只不過它代理的是話務(wù)員而不是客戶端,這種代理稱之為反向代理。
Nginx 的優(yōu)勢(shì)在 Java 開發(fā)中,Nginx 有著非常廣泛的使用,隨便舉幾點(diǎn):
使用 Nginx 做靜態(tài)資源服務(wù)器:Java 中的資源可以分為動(dòng)態(tài)和靜態(tài),動(dòng)態(tài)需要經(jīng)過 Tomcat 解析之后,才能返回給瀏覽器,例如 JSP 頁(yè)面、Freemarker 頁(yè)面、控制器返回的 JSON 數(shù)據(jù)等,都算作動(dòng)態(tài)資源,動(dòng)態(tài)資源經(jīng)過了 Tomcat 處理,速度必然降低。對(duì)于靜態(tài)資源,例如圖片、HTML、JS、CSS 等資源,這種資源可以不必經(jīng)過 Tomcat 解析,當(dāng)客戶端請(qǐng)求這些資源時(shí),之間將資源返回給客戶端就行了。此時(shí),可以使用 Nginx 搭建靜態(tài)資源服務(wù)器,將靜態(tài)資源直接返回給客戶端。
使用 Nginx 做負(fù)載均衡服務(wù)器,無論是使用 Dubbo 還是 Spirng Cloud ,除了使用各自自帶的負(fù)載均衡策略之外,也都可以使用 Nginx 做負(fù)載均衡服務(wù)器。
支持高并發(fā)、內(nèi)存消耗少、成本低廉、配置簡(jiǎn)單、運(yùn)行穩(wěn)定等。
Nginx 安裝:由于基本上都是在 Linux 上使用 Nginx,因此松哥這里主要向大家展示 CentOS 7 安裝 Nginx:
首先下載 Nginx
wget http://nginx.org/download/nginx-1.17.0.tar.gz
然后解壓下載的目錄,進(jìn)入解壓目錄中,在編譯安裝之前,需要安裝兩個(gè)依賴:
yum -y install pcre-devel yum -y install openssl openssl-devel
然后開始編譯安裝:
./configure make make install
裝好之后,默認(rèn)安裝位置在 :
/usr/local/nginx/sbin/nginx
進(jìn)入到該目錄的 sbin 目錄下,執(zhí)行 nginx 即可啟動(dòng) Nginx :
Nginx 啟動(dòng)成功之后,在瀏覽器中直接訪問 Nginx 地址:
看到如上頁(yè)面,表示 Nginx 已經(jīng)安裝成功了。
如果修改了 Nginx 配置,則可以通過如下命令重新加載 Nginx 配置文件:
./nginx -s reload總結(jié)
本文算是一個(gè)簡(jiǎn)單的 Nginx 掃盲文,希望大家看完后對(duì) Nginx 有一個(gè)基本的認(rèn)知。本文先說到這里,有問題歡迎留言討論。
關(guān)注公眾號(hào)【江南一點(diǎn)雨】,專注于 Spring Boot+微服務(wù)以及前后端分離等全棧技術(shù),定期視頻教程分享,關(guān)注后回復(fù) Java ,領(lǐng)取松哥為你精心準(zhǔn)備的 Java 干貨!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40471.html
摘要:官網(wǎng)全站實(shí)踐正式來襲也迎來自己的一個(gè)里程碑?dāng)?shù)正式突破官網(wǎng)作為項(xiàng)目組服務(wù)開發(fā)者們的重要渠道也迎來了自己的一次重大更新重構(gòu)升級(jí)到全站實(shí)現(xiàn)本篇先介紹官網(wǎng)全站實(shí)踐先來一張官網(wǎng)效果圖鎮(zhèn)樓靜態(tài)資源由托管開啟業(yè)務(wù)代碼交由執(zhí)行設(shè)置使用協(xié)議要實(shí)現(xiàn)非常簡(jiǎn)單 date: 2018-3-8 13:50:03title: Swoft| Swoft官網(wǎng)全站 HTTP2 實(shí)踐 Swoft1.0正式來襲, Swoft...
摘要:又不似程序員可以直接套用框架來快速建站,不重復(fù)發(fā)明輪子。至此開啟了新的折騰之旅。以及百度收錄的時(shí)候不執(zhí)行腳本等原因。能對(duì)應(yīng)高并發(fā),還能被百度爬蟲識(shí)別。主要內(nèi)容如標(biāo)題文章等用標(biāo)簽渲染,讓百度爬蟲一次收錄成功。 showImg(https://segmentfault.com/img/remote/1460000018057514); 目前版本的博客地址: https://zzzmh.cn...
摘要:實(shí)戰(zhàn)用從圖像中讀取文字即光學(xué)字符辨識(shí)是把打印文本轉(zhuǎn)換成一個(gè)數(shù)字表示的過程??梢杂霉雀桦娫拵?kù)來確定一個(gè)數(shù)字串是否是合法電話號(hào)碼。現(xiàn)在我們可以如下使用我們需要給谷歌電話庫(kù)提供一個(gè)提示來說明這個(gè)號(hào)碼是哪個(gè)國(guó)家的。 PHP OCR實(shí)戰(zhàn):用Tesseract從圖像中讀取文字 Optical Character Recognition (OCR)即光學(xué)字符辨識(shí)是把打印文本轉(zhuǎn)換成一個(gè)數(shù)字表示的過程。...
閱讀 2421·2023-04-25 19:27
閱讀 3531·2021-11-24 09:39
閱讀 3941·2021-10-08 10:17
閱讀 3425·2019-08-30 13:48
閱讀 1964·2019-08-29 12:26
閱讀 3147·2019-08-28 17:52
閱讀 3563·2019-08-26 14:01
閱讀 3559·2019-08-26 12:19