nginx是什麼,能做什麼,tengine於它的關係,網站設計的優化方法
一說到nginx我們可能想到它跟伺服器掛鉤:
那麼具體他有哪些功能呢:
1:反向代理
2:負載均衡
3:資源伺服器:
接下來具體說說不同功能下都做了哪些事情:
一說到反向代理我們可能會想到的是代理了,那麼代理和反向代理的區別到底是什麼呢:
我們一般說到的代理很大程度上跟翻牆相關了,也就是說利用牆外面的未被牆遮蔽的伺服器(說白了就是電腦)
利用它來連線牆外面的網路;這樣可以隱藏客戶端的作用,黑客很多時候就是利用代理來進行操作的,利用代理跳轉幾次,你就很難追綜到了;
說完了代理我們來說說反向代理;代理是讓你能看到外面的世界,那麼反向代理就是讓外面的世界看到你;
再伺服器上的應用就是對伺服器進行統一排程分配:
1:假設一臺伺服器(django為例)能處理的併發是2000個,這是後你公司的需求是讓你的伺服器能夠承受的壓力是併發數為20000,那麼怎麼辦呢:很容易先到的方法就是增加伺服器了,但是伺服器不是大白菜,所以還有一個辦法就是nginx來提高他的併發能力;那麼他是如何增強的呢:首先它是c能承載更多的併發量:
其次他能進行活躍使用者和非活躍使用者的轉換,這樣appserver就不用做活躍使用者的請求就行了;
2:nginx的負載均衡目前支援的方法:
1):加權重值,也就是每臺伺服器效能不同,根據他們的效能給他們分配一個權重,讓他們根據這個來處理業務
2):通過iphash的方法:一些客戶端再訪問appserver的時候會有一些快取,通過iphash的方法,對於同一個ip地址,總是 指向同一個伺服器,這個才能保證這些快取有用,能有效的提升伺服器效率;
3):fair:響應時間來確定任務量:對於反應快的伺服器就多更他分配任務
4):urlhash :讓一些圖片儲存再專門的伺服器上,在設定url的時候,通一一種url的設定方法;這樣就能讓做業務去做業務,做圖片(io)的去專門做圖片任務
tengine就是再nginx上添加了更多的第三方包的東西,(適合中國的伺服器要求,不用自己去配置,下載安裝之類的)
如何能加快網站的速度呢:
1:首先首先要做成靜態的,也就是說沒有對業務伺服器的訪問(也就是沒有做過sql查詢)
2:把主頁放到nginx上,讓nginx代理
3:把一些靜態資源給nginx,(包括htmlcss,js的內容)