為什麼大家都選擇Nginx?

前言

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

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


為什麼使用Nginx?

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

為什麼大家都選擇Nginx?

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

為什麼大家都選擇Nginx?

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

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

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

為什麼大家都選擇Nginx?

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

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

優勢

Nginx 是一個高性能的 Web 和反向代理服務器, 它具有有很多非常優越的特性:

作為 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個併發連接數的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發模型.

作為負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

作為郵件代理服務器: Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作為郵件代理服務器),Last.fm 描述了成功並且美妙的使用經驗。

Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器: Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在 不間斷服務的情況下進行軟件版本的升級。


後面小編會分享更多DBA運維和devops方面的乾貨,感興趣的朋友走一波關注哩~

為什麼大家都選擇Nginx?


分享到:


相關文章: