什麼是Nginx?為什麼使用Nginx?《Nginx的作用及優點》

前言

為毛要用nginx服務器代理,不直接用tomcat 7.0,還做多了一次接請求?

這個是我想問的,公司的新項目是要用Nginx+tomcat7+jdk開發的,用戶命名可以直接訪問tomcat,為啥還要用Nginx?這貨是個啥玩意?

什麼是Nginx?

根據前面的對比,我們可以瞭解到Nginx是一個http服務器。是一個使用c語言開發的高性能的http服務器及反向代理服務器。Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬併發鏈接,並且cpu、內存等資源消耗卻非常低,運行非常穩定。


Nginx的應用場景

1、 http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。

2、 虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。

基於端口的,不同的端口

基於域名的,不同域名

3、 反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理。並且多臺服務器可以平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閒置的情況。

為什麼使用Nginx?

在傳統的Web項目中,併發量小,用戶使用的少。所以在低併發的情況下,用戶可以直接訪問tomcat服務器,然後tomcat服務器返回消息給用戶。比如,我們上傳圖片:


什麼是Nginx?為什麼使用Nginx?《Nginx的作用及優點》

當然我們知道,為了解決併發,可以使用負載均衡:也就是我們多增加幾個tomcat服務器。當用戶訪問的時候,請求可以提交到空閒的tomcat服務器上。


什麼是Nginx?為什麼使用Nginx?《Nginx的作用及優點》

但是這種情況下可能會有一種這樣的問題:上傳圖片操作。我們把圖片上傳到了tomcat1上了,當我們要訪問這個圖片的時候,tomcat1正好在工作,所以訪問的請求就交給其他的tomcat操作,而tomcat之間的數據沒有進行同步,所以就發生了我們要請求的圖片找不到。

為了解決這種情況,我們就想出了分佈式。我們專門建立一個圖片服務器,用來存儲圖片。這樣當我們都把圖片上傳的時候,不管是哪個服務器接收到圖片,都把圖片上傳到圖片服務器。

圖片服務器上需要安裝一個http服務器,可以使用tomcat、apache、nginx。

什麼是Nginx?為什麼使用Nginx?《Nginx的作用及優點》

看到這裡大家可能會問,既然我們要選擇的是http服務器,為什麼不繼續使用tomcat,而要使用Nginx?

原因如下:nginx常用做靜態內容服務和代理服務器(不是你FQ那個代理),直面外來請求轉發給後面的應用服務(tomcat,django什麼的),tomcat更多用來做做一個應用容器,讓java web app跑在裡面的東西,對應同級別的有jboss,jetty等東西。

nginx優點及常用web服務器產品

靜態web服務軟件

1 Apache 中小型web服務的主流

優點:運行速度快,性能穩定,擴展豐富

缺點:以進程為結構基礎,消耗cpu,性能下降

2 Lighttpd 開源輕量級web服務器軟件

優點:1 安全,快速,兼容性好,靈活

2 低開銷,低CPU使用率

3 支持大多數apache的重要功能

缺點: 功能存在不足,部分代碼缺陷(如對proxy功能不完善)

動態web服務軟件

1 Microsoft IIS 微軟旗下產品

優點:可靠、安全、性能和擴展能力強

缺點:部署成本高

2 Tomcat(公貓) Sun公司旗下產品

優點:部署安裝方便,系統佔有率低,主要的Servlet和JSP容器

缺點:功能少,無法滿足複雜業務場景

nginx優點

1 高併發連接

2 內存消耗少

3 穩定性高

Nginx 版本信息

nginx官網有三個版本

1 stable version 穩定版(企業用)

2 mainline version 開發版(個人用)

3 Legacy versions 歷史版

Nginx功能特性

1.處理靜態文件,索引文件以及自動索引

2.反向代理加速(無緩存),簡單的負載均衡和容錯

3.FastCGI,簡單的負載均衡和容錯

4.模塊化的結構。過濾器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI過濾 器中,到同一個 proxy 或者 FastCGI 的多個子請求併發處理

5.SSL 和 TLS SNI 支持

6.IMAP/POP3代理服務功

7.使用外部 HTTP 認證服務器重定向用戶到 IMAP/POP3 後端

8.使用外部 HTTP 認證服務器認證用戶後連接重定向到內部的 SMTP 後端


Nginx主要功能

1 nginx可作為HTTP代理服務和反向代理

2 nginx可作為負載均衡

3 nginx可作為Web緩存

通過了解Nginx也算是多了一門技術,而且還是挺簡單的,使用也比較方便。重點是可以給系統帶來很大的性能提升。


總結;需要資料的關注+後臺私信 《資料》免費領取

linux C/C++服務器後臺開發面試題總結。C/C++,Linux,golang技術,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,RTSP RTMP HLS 流媒體 ffmpeg,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK等.............


分享到:


相關文章: