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