nginx與uwsgi介紹


nginx概念

nginx是一款高性能的http服務器/反向代理服務器及電子郵件代理服務器

nginx應用場景

  1. http服務器。nginx是一個http服務器可以獨立提供http服務。可以做網頁靜態服務器。

  2. 虛擬主機。可以實現在一台服務器虛擬出多個網站。例如個人網站使用的虛擬主機。

    基於端口的,不同端口。

    基於域名的,不同域名。

  3. 反向代理,負載均衡。當網站的訪問量達到一定程度后,單台服務器不能滿足用戶的請求時,需要用多台服務器集群可以使用nginx做反向代理。並且多台服務器可以平均分擔負載,不會因為某台服務器負載高宕(dang)機而某台服務器閑置的情況。

uwsgi概念

uwsgi實現了wsgi的所有接口,是一個快速、自我修復、開發人員和系統管理員友好的服務器

nginx uwsig wsgi django 這些究竟是什么關系?

  1. 首先nginx是都對外的服務接口,外部瀏覽器通過url訪問nainx。

  2. nginx接收到瀏覽器發送過來的http請求,將包進行解析,分析url,如果是靜態文件請求就直接訪問用戶給nginx配置的靜態文件目錄,直接返回用戶請求的靜態文件。

    如果不是靜態文件,而是一個動態的請求,那么nginx就將請求發個uwsgi,uwsgi接收到請求后將包進行處理,處理成wsgi可以接受的格式,並發給wsgi,wsgi根據請求調用應用程序的某個文件,某個文件的某個函數,最后處理完將返回值再次交給wsgi,wsgi將返回值打包,打包成uwsgi能夠接收的格式,uwsgi接收wsgi發送的請求,並轉發給nginx,nginx最終將返回值返回給瀏覽器。

  3. 要知道第一級的nginx並不是必須的,uwsgi完全可以完成整個的和瀏覽器交互的流程,但是要考慮到某種情況。

  4. 安全問題,程序不能直接被瀏覽器訪問到,而是通過nginx,nginx只開放某個接口,uwsgi本身是內網接口,這樣運維人員在nginx上加上安全性的限制,可以達到保護程序的作用。

  5. 負載均衡問題,一個uwsgi很可能不夠用,即使開了多個work也是不行,畢竟一台機器的cpu和內存都是有限的,有了nginx做代理,一個nginx可以代理多台uwsgi完成uwsgi的負載均衡。

  6. 靜態文件問題,用django或是uwsgi這種東西來負責靜態文件的處理是很浪費的行為,而且他們本身對文件的處理也不如nginx好,所以整個靜態文件的處理都直接有nginx完成,靜態文件的訪問完全不去經過uwsgi以及后面的東西。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM