什麼是nginx
- Nginx 是異步框架的網頁服務器,也可以用作反向代理、負載平衡器和 HTTP 緩存。大部分 Web 服務器使用 Nginx,通常作爲負載均衡器。
- 部署web項目的容器(部署你們寫的項目的),常見的web容器有:nginx、Apache、Tomcat
- nginx官方宣稱可以處理十萬併發(處理靜態資源的時候應該是可以達到這個水平)
nginx高併發原理( 多進程+epoll實現高併發 【select poll epoll】)
- Nginx 在啓動後,會有一個 master 進程和多個相互獨立的 worker 進程。
- 每個子進程只有一個線程,採用的 IO多路複用模型epoll,實現高併發。
nginx和apache比較
1)nginx相對於apache的優點
- 輕量級,同樣起web 服務,比apache 佔用更少的內存及資源
- 抗併發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高性能
- 高度模塊化的設計,編寫模塊相對簡單,社區活躍,各種高性能模塊出品迅速啊
2)apache 相對於nginx 的優點
- apache 更爲成熟,少 bug ,穩定性好
- rewrite ,比nginx 的rewrite 強大
- 模塊超多,基本想到的都可以找到
Nginx的應用場景
-
http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。
-
虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。
-
反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用nginx做反向代理。並且多臺服務器可以平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。
nginx反向代理
nginx反向代理
- 反向代理對用戶透明,客戶端無需任何配置即可訪問服務。
- 實際運行方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器。
- 並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器。
反向代理的作用:
- 保證內網的安全,通常將反向代理作爲公網訪問地址,Web服務器是內網
- 負載均衡,通過反向代理服務器來優化網站的負載
反向代理和web服務器區別
- 反向代理服務器:通過給你upstream參數配置, proxy_pass
- web服務器部署:web服務服務器應該不是我們真實項目(django+uwsgi+nginx)
- 幾臺反向代理服務器:沒有使用LVS等負載均衡技術,那麼只有一臺負載均衡服務器
- 反向代理服務器部署nginx後臺爲什麼也不是nginx: 提高每個web服務器處理能力