參加了公司前兩天的一個關於Nginx的技術分享,一直很懶,今天把參加後的總結記錄一下。 nginx
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配置中實現負載均衡公司使用兩種方式: lua
- 根據weight:location -> proxy_pass -> upstream -> 在upstream中不一樣的後端Server配置不一樣的weight
- 根據Hash: location -> proxy_pass -> upstream -> 在upstream將域名以後的位置請求Hash後分配到不一樣的後端Server
須要注意的是,Nginx的反向代理會將client的請求所有讀入到nginx server的內存中,再轉發到後端的Server。 代理
關於Nginx用做緩存: server
- 能夠將數據緩存到磁盤或者MemCached中
- Nginx對磁盤上多個文件的管理性能通常
最後提到,Nginx如今只支持HTTP1.0,因此使用的時候要注意。