上篇文章和你們聊了 Spring Session 實現 Session 共享的問題,有的小夥伴看了後表示對 Nginx 仍是很懵,所以有了這篇文章,算是一個 Nginx 掃盲入門吧!nginx
Nginx
是一個高性能的 HTTP
和反向代理 web
服務器,同時也提供了 IMAP/POP3/SMTP
服務。web
Nginx
是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的 Rambler.ru
站點開發的,第一個公開版本 0.1.0
發佈於 2004
年 10
月 4
日。後端
Nginx
特色是佔有內存少,併發能力強。瀏覽器
事實上 nginx
的併發能力確實在同類型的網頁服務器中表現較好,通常來講,若是咱們在項目中引入了 Nginx
,咱們的項目架構多是這樣:bash
在這樣的架構中 , Nginx
所表明的角色叫作負載均衡服務器或者反向代理服務器,全部請求首先到達 Nginx
上,再由 Nginx
根據提早配置好的轉發規則,將客戶端發來的請求轉發到某一個 Tomcat
上去。服務器
那麼這裏涉及到兩個概念:架構
就是進行請求轉發,下降某一個服務器的壓力。負載均衡策略不少,也有不少層,對於一些大型網站基本上從 DNS
就開始負載均衡,負載均衡有硬件和軟件之分,各自表明分別是 F5
和 Nginx
(目前 Nginx
已經被 F5
收購),早些年,也可使用 Apache
來作負載均衡,可是效率不如 Nginx
,因此如今主流方案是 Nginx
。併發
另外一個概念是反向代理服務器,得先說正向代理,看下面一張圖:負載均衡
在這個過程當中,Google 並不知道真正訪問它的客戶端是誰,它只知道這個中間服務器在訪問它。所以,這裏的代理,其實是中間服務器代理了客戶端,這種代理叫作正向代理。前後端分離
那麼什麼是反向代理呢?看下面一張圖:
在這個過程當中,10086 這個號碼至關因而一個代理,真正提供服務的,是話務員,可是對於客戶來講,他不關心究竟是哪個話務員提供的服務,他只須要記得 10086 這個號碼就好了。
全部的請求打到 10086 上,再由 10086 將請求轉發給某一個話務員去處理。所以,在這裏,10086 就至關因而一個代理,只不過它代理的是話務員而不是客戶端,這種代理稱之爲反向代理。
在 Java 開發中,Nginx 有着很是普遍的使用,隨便舉幾點:
因爲基本上都是在 Linux 上使用 Nginx,所以鬆哥這裏主要向你們展現 CentOS 7 安裝 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 乾貨!