參加了公司前兩天的一個關於Nginx的技術分享,一直很懶,今天把參加後的總結記錄一下。
Nginx的作用:
- HTTP Server
- 反向代理,用於將用戶的請求轉發到後端的Server上,過濾掉一些無用的請求,不用直接進入後端Server
- 郵件服務器
Nginx可以同時響應上萬的請求,效率要高於Apache Server。
Nginx在公司的應用:
- 反向代理:
- HTTP層的交換,可以用來分流用戶,比如根據用戶的ID是偶數還是奇數來分流
- 負載均衡
- 用於緩存Server
- 用作Web Server,主要是圖片相冊什麼的
關於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用作緩存:
- 可以將數據緩存到磁盤或者MemCached中
- Nginx對磁盤上多個文件的管理性能一般