Java nginx是Java后臺開發(fā)最常用最入門的技術(shù)嗎?Nginx確實是比較常用的技術(shù)(服務(wù)器)之一,不僅Java應(yīng)用可以使用到,它可以應(yīng)用在很多場景下。下面我就按照自己的理解,向大家介紹一下。

什么是Nginx

如果你是Java程序員,沒用聽說過Nginx的話,那么你肯定聽說過Apache吧。Nginx也是一樣,是一種WEB服務(wù)器。它有以下特點:

  • 是使用C語言開發(fā)出來的,基于事件驅(qū)動架構(gòu),性能很高,高并發(fā)能力極強;

  • 跨平臺,可以運行在windows、Linux、Mac、Solaris等操作系統(tǒng)上;

  • 第三方模塊很多(生態(tài)環(huán)境好)。

Java后臺開發(fā)

那么我們再看看Nginx能做什么:

反向代理

這個概念大家一定很耳熟,那么在說反向代理之前,先看看什么是正向代理。

  • 正向代理:我想訪問谷歌,沒辦法直接訪問,這時候找一個代理服務(wù)器,我通過代理服務(wù)器訪問谷歌;正向代理特點是客戶端知道要訪問的服務(wù)器地址是什么;服務(wù)器不知道客戶端是誰,正向代理-代理的是客戶端;

  • 反向代理:代理服務(wù)器接收互聯(lián)網(wǎng)端的請求,轉(zhuǎn)發(fā)請求到內(nèi)網(wǎng)中的服務(wù)器(可能會是多臺服務(wù)器中的一臺),得到服務(wù)器的響應(yīng)之后,再把響應(yīng)返回給客戶端;這時候客戶端不知道服務(wù)器在哪,反向代理-代理的是服務(wù)端。

  • 在一個項目的架構(gòu)中,正向代理和反向代理可能同時存在。

Java后臺開發(fā)

負載均衡

因為Nginx可以做反向代理服務(wù)器,它可以把客戶端的請求發(fā)送給服務(wù)器端;客戶端的請求數(shù)量,就是負載量。

那么把負載量,按照一定的規(guī)則,分發(fā)給不同的服務(wù)器就行處理,這個就叫做負載均衡;負載均衡的好處,就是把壓力平均到每一臺服務(wù)器上。負載均衡的調(diào)度方法有:輪詢,一個一個輪著發(fā);ip_hash;url_hash;fair等。

Java后臺開發(fā)

總之,Nginx是常用的軟件(服務(wù)器)之一,最好學習一下。