謝邀~
Nginx確實是比較常用的技術(服務器)之一,不僅Java應用可以使用到,它可以應用在很多場景下。下面我就按照自己的理解,向大家介紹一下。
什么是Nginx如果你是Java程序員,沒用聽說過Nginx的話,那么你肯定聽說過Apache吧。Nginx也是一樣,是一種WEB服務器。它有以下特點:
是使用C語言開發出來的,基于事件驅動架構,性能很高,高并發能力極強;
跨平臺,可以運行在windows、Linux、Mac、Solaris等操作系統上;
第三方模塊很多(生態環境好)。
那么我們再看看Nginx能做什么:
反向代理這個概念大家一定很耳熟,那么在說反向代理之前,先看看什么是正向代理。
正向代理:我想訪問谷歌,沒辦法直接訪問,這時候找一個代理服務器,我通過代理服務器訪問谷歌;正向代理特點是客戶端知道要訪問的服務器地址是什么;服務器不知道客戶端是誰,正向代理-代理的是客戶端;
反向代理:代理服務器接收互聯網端的請求,轉發請求到內網中的服務器(可能會是多臺服務器中的一臺),得到服務器的響應之后,再把響應返回給客戶端;這時候客戶端不知道服務器在哪,反向代理-代理的是服務端。
在一個項目的架構中,正向代理和反向代理可能同時存在。
負載均衡因為Nginx可以做反向代理服務器,它可以把客戶端的請求發送給服務器端;客戶端的請求數量,就是負載量。
那么把負載量,按照一定的規則,分發給不同的服務器就行處理,這個就叫做負載均衡;負載均衡的好處,就是把壓力平均到每一臺服務器上。負載均衡的調度方法有:輪詢,一個一個輪著發;ip_hash;url_hash;fair等。
總之,Nginx是常用的軟件(服務器)之一,最好學習一下。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。