今天又是新的一周,我養足了精神去對待新一周的工作,但是今天到公司發現還是有一點空閑時間的,所以就想與之前接觸過的Nginx再交往得更深一點兒。
什么是Nginx:
Nginx是一款高性能的http服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。官方測試nginx能夠支撐5萬並發鏈接,但是實際生產環境能到2-3萬並發連接數(只是聽說),並且cpu、內存等資源消耗缺非常低,運行非常穩定。
Nginx在實際生產中的應用場景:
上面已經說了,Nginx是一款高性能的http服務器,所以它可以提供單獨的http服務,經常在開發中用作靜態網頁服務器來使用;還有一點就是它的核心應用,即反向代理服務器和負載均衡:其實反向代理這一點並不難理解,就是通過配置將服務器的IP和指定域名進行映射即可。至於負載均衡,就是當某個網站的訪問量達到一定程度后,並且單台服務器不能提供服務的情況下,我們就需要借助軟件技術能夠讓多台服務器輪流分擔訪問壓力,目的是達到不會因為某台服務器負載高宕機而某台服務器閑置的這種不公平情況,經常我們會采取某種輪詢機制來讓它們正常工作。
什么是負載均衡(Load Balance):
一台普通服務器的處理能力是有限的,假如能達到每秒幾萬個到幾十萬個請求,但卻無法在一秒鍾內處理上百萬個甚至更多的請求。但若能將多台這樣的服務器組成一個系統,並通過軟件技術將所有請求平均分配給所有服務器,那么這個系統就完全擁有每秒鍾處理幾百萬個甚至更多請求的能力。這就是負載均衡最初的基本設計思想。
負載均衡是由多台服務器以對稱的方式組成一個服務器集合,每台服務器都具有等價的地位,都可以單獨對外提供服務而無須其他服務器的輔助。通過某種負載分擔技術,將外部發送來的請求按照某種策略分配到服務器集合的某一台服務器上,而接收到請求的服務器獨立地回應客戶的請求。負載均衡解決了大量並發訪問服務問題,其目的就是用最少的投資獲得接近於大型主機的性能。
在Linux環境上安裝Nginx:
- 安裝PCRE yum install –y pcrepcre-devel
- 安裝ZLIB yum install –y zlibzlib-devel
- 安裝OPENSSL yum install –y opensslopenssl-devel
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi |
Nginx實現負載均衡:
需求:當我們在瀏覽器訪問某一地址時,后台由多個不同端口的服務器來輪詢響應?
實現步驟:
第一步、准備2台或2台以上的Tomcat服務器,並且保證它們的端口號不發生沖突並能正常訪問,我這里准備了2台並且在每個Tomcat中扔進一個運行正常的web項目。
第二步、配置Nginx的負載均衡,我這里采用輪詢+權重的機制來實現的,說明一點:正常情況下負載均衡的配置是通過域名映射來訪問的,我這兒沒有映射域名,如果各位想通過映射域名則配置域名然后去修改hosts文件即可。

第三步、通過配置文件中的配置,訪問資源,最后發現倆個Tomcat服務器上的web應用輪詢響應(這里本應該給各位上傳一段測試后的視頻的,但是咨詢了一下午沒能做到,還望各位將就一下吧)。