什么是ngnix?
Nginx是一個http服務器。是一個使用c語言開發的高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。nginx能夠支撐5萬並發鏈接,並且cpu、內存等資源消耗卻非常低,運行非常穩定,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
NGINX可以用來做什么?
1、反向代理:反向代理(ReverseProxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,簡單來說就是真實的服務器不能直接被外部網絡訪問,想要訪問必須通過代理。
2、動靜分離:運用Nginx的反向代理功能分發請求:所有動態資源的請求交給應用服務器,而靜態資源的請求(例如圖片、視頻、CSS、JavaScript文件等)則直接由Nginx返回到瀏覽器,這樣能大大減輕應用服務器的壓力
3、負載均衡:負載均衡也是 Nginx常用的一個功能,當一台服務器的單位時間內的訪問量越大時,服務器壓力就越大,大到超過自身承受能力時,服務器就會崩潰。為了避免服務器崩潰,讓用戶有更好的體驗,我們通過負載均衡的方式來分擔服務器壓力。我們可以建立很多很多服務器,組成一個服務器集群,當用戶訪問網站時,先訪問一個中間服務器,在讓這個中間服務器在服務器集群中選擇一個壓力較小的服務器,然后將該訪問請求引入該服務器。如此以來,用戶的每次訪問,都會保證服務器集群中的每個服務器壓力趨於平衡,分擔了服務器壓力,避免了服務器崩潰的情況。負載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉到負載均衡。
常見問題
1.nginx負載均衡是如何實現的
2.nginx的upstream常見的幾種方式的分發策略
解決方案
回答一:nginx負載均衡要兩台或以上的應用服務器 , 並且在nginx.conf中寫入相關配置,主要是對proxy_pass,upstream的使用
回答二:常見的幾種負載均衡方式
1.輪詢(默認)——每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。
2.weight ——指定輪詢幾率,weight和訪問比率成正比,用於后端服務器性能不均的情況。
3. ip_hash ——每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器。
4.backup——其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。
5.down——表示單前的server暫時不參與負載
6.fair(第三方)按后端服務器的響應時間來分配請求,響應時間短的優先分配。與weight分配策略類似。
編碼實戰

nginx和tomcat的區別是什么?
雖然Tomcat也可以認為是HTTP服務器,內部集成了http服務器的相關功能,但通常它仍然會和Nginx配合在一起使用。nginx常用做靜態內容服務和反向代理服務器,以及頁面前端高並發服務器。嚴格的來說,Nginx 應該叫做「HTTP Server」;而 Tomcat 則是一個「Application Server」,或者更准確的來說,是一個「Servlet/JSP」應用的容器(Ruby/Python 等其他語言開發的應用也無法直接運行在 Tomcat 上),這種特性導致了它們在使用中有明確的分工職責。tomcat更多用來做做一個應用容器,讓java web app跑在里面的東西。大部分適用於靜態資源文件的訪問(圖片,文件)