小程序應用的Python服務器部署高配,依然是騰訊雲秒殺阿里雲!

上一篇文章,「小程序創業最低配置部署,騰訊雲折扣秒殺阿里雲!」介紹了小程序項目啓動時的最低配置服務器選擇,但當項目良好發展時,仍是要把服務器配置調整到標準水平,承受住日益增加的流量訪問。php

隨着Python的流行,直接用Python來部署Web服務器變成一個需求。但Python自帶的Flask或傳統的DJango都是基於阻塞io模型實現,性能上每每達不到生產環境大規模跑用戶的需求。Tornado在底層io處理機制上和django以及flask有着根本的區別,採用了非阻塞io模型,也特別適合小程序用python實現服務端時的部署。html

1. 肯定Tornado的部署架構python

下圖是通常Tornado用做生產環境的標準部署架構。核心思想是在一臺服務器上要運行多個tornado實例,而後使用nginx做反向代理服務器,nginx會把客戶端請求中轉到適當的tornado服務器進程。nginx

運行多個Tornado進程實例的緣由是同步請求時,在應用處理過程當中(如數據庫查詢,磁盤訪問),服務器進程不能接受新請求,因此須要運行多個服務器進程實例。而在異步請求時,在應用處理時,服務器進程是非阻塞的,能夠接受新請求,所以tornado的非阻塞架構自己就很好地解決這個問題。數據庫


 

 

2. 雲服務器比較django

通常建議每一個Tornado進程實例對應1個CPU,因此建議購買4核8G或者是8核16G的服務器。咱們比較了騰訊雲和阿里雲的服務器價格,都是按照優惠價格比較,依然是騰訊雲秒殺阿里雲。flask

騰訊雲的「雲服務器三折起」優惠活動對4核8G和8核16G的服務器有超划算的優惠。見下圖,左邊選擇「8核16G」,右邊選擇「重慶」,1年付能夠拿到3.8折,才3149.59元。小程序

左邊若是選擇「4核8G」的話,1年付將是2000元左右更優惠。通常狀況下4核8G配置也已足夠,但考慮「8核16G」只貴了1000元1年,在有預算的時候,不妨選擇「8核16G」,當有突發負載時更有緩衝的餘量。服務器


 

與之相對應的阿里雲,「性能級主機2-5折」是目前在搞的ECS優惠活動。相似的「8核16G」將須要4466元/年。若是隻有3000元預算的話,只有購買4核8G雲服務器,或者是「8核16G」的突發型實例(即負載不能一直跑滿100%)。架構


 

3. NGinx配置

NGinx的反向代理安裝和配置是運維標配了。咱們這裏着重兩個環節,a) 反向代理到4個Tornado實例;b) 配置SSL。

下面所列的NGinx配置示例主要就考慮了這兩點,重點關注upstream和ssl的配置。

user nginx;

worker_processes 5;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

events {

    worker_connections 1024;

    use epoll;

}

proxy_next_upstream error;

upstream tornadoes {

    server 127.0.0.1:8000;

    server 127.0.0.1:8001;

    server 127.0.0.1:8002;

    server 127.0.0.1:8003;

}

server {

    listen 443;

    ssl on;

    ssl_certificate /path/to/cert.pem;

    ssl_certificate_key /path/to/cert.key;

    server_name www.example.org *.example.org;

    location /static/ {

        root /var/www/static;

        if ($query_string) {

            expires max;

        }

    }

    location / {

        proxy_pass_header Server;

        proxy_set_header Host $http_host;

        proxy_redirect off;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Scheme $scheme;

        proxy_pass http://tornadoes;

    }

}

4. 利用Supervisor管理部署tornado進程。

詳細操做能夠參見這篇文章,使用python3+supervisor+nginx部署tornado

 

更多省錢祕笈,請看:

阿里雲如何跨帳號打通,多帳號同時享受優惠

零門檻申請阿里雲1萬元代金券

阿里雲超長6個月免費套餐彙總

阿里雲包年包月服務器如何退款

相關文章
相關標籤/搜索