Nginx的作用:
- HTTP Server
- 反向代理,用于将使用者的請求轉發到後端的Server上,過濾掉一些無用的請求,不用直接進入後端Server
- 郵件伺服器
Nginx可以同時響應上萬的請求,效率要高于Apache Server。
Nginx在公司的應用:
- 反向代理:
- HTTP層的交換,可以用來分流使用者,比如根據使用者的ID是偶數還是奇數來分流
- 負載均衡
- 用于緩存Server
- 用作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,是以使用的時候要注意。