tomcat既是一個servlet和jsp容器,也是一個輕量級的web服務器,它既可以處理動態內容,也可以處理靜態內容。為什么還需要結合nginx一起使用?
原因:
(1)、tomcat處理html的能力不如nginx,處理靜態內容的速度不如nginx,所以靜態頁面交給nginx,動態請求交給tomcat處理。
(2)、tomcat接受的最大并發數有限,接連接數過多,會導致tomcat處于”僵尸”狀態,對后續的連接失去響應,需要利用nginx的高并發,低消耗的特點與tomcat一起使用。
Nginx優點
2.1、動靜分離&反向代理
nginx是一種輕量級,高性能,多進程的web服務器,非常適合作為靜態資源的服務器使用,而動態的訪問操作可以使用tomcat來實現,nginx作為代理服務器的同時,也使用其作為靜態資源的服務器。靜態資源通過絕對路徑去訪問,放在nginx服務器當中,動態資源通過url拼接字符串的方式去訪問tomcat服務器。
2.2、負載均衡
為了解決并發,我們可以使用負載均衡,也就是我們多增加幾個tomcat服務器,當用戶訪問的時候,請求可以提交到空閑的tomcat服務器上。
Nginx的upstream目前支持以下幾種方式的分配
(1)、輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。
(2)、weight
指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。
(3)、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決Session的問題。
(4)、fair
按后端服務器的響應時間來分配請求,響應時間短的優先分配。
(5)、url_hash
按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。
更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!?