天天看點

參加Nginx技術分享

Nginx的作用: 

  1. HTTP Server 
  2. 反向代理,用于将使用者的請求轉發到後端的Server上,過濾掉一些無用的請求,不用直接進入後端Server 
  3. 郵件伺服器 

Nginx可以同時響應上萬的請求,效率要高于Apache Server。 

Nginx在公司的應用: 

  1. 反向代理:  
    1. HTTP層的交換,可以用來分流使用者,比如根據使用者的ID是偶數還是奇數來分流 
    2. 負載均衡 
    3. 用于緩存Server 
  2. 用作Web Server,主要是圖檔相冊什麼的 

Nginx在淘寶的一個應用:查詢伺服器,利用Lua + lua_module + MySQL 

關于Nginx的配置 

Nginx配置中最小的是location,在每個location中會有類似于Container Handler的東西,将請求轉發到後端的Server中獲得内容,在傳回之前還可以使用filter對内容進行處理。 

Nginx配置中實作負載均衡公司使用兩種方式: 

  • 根據weight:location -> proxy_pass -> upstream -> 在upstream中不同的後端Server配置不同的weight 
  • 根據Hash: location -> proxy_pass -> upstream -> 在upstream将域名之後的位置請求Hash後配置設定到不同的後端Server 

需要注意的是,Nginx的反向代理會将client的請求全部讀入到nginx server的記憶體中,再轉發到後端的Server。 

關于Nginx用作緩存: 

最後提到,Nginx現在隻支援HTTP1.0,是以使用的時候要注意。