最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django+Nginx+uwsgi服務器部署

 更新時間:2022年06月13日 09:14:05   作者:springsnow  
這篇文章介紹了Django+Nginx+uwsgi服務器部署的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、安裝 uwsgi

uWSGI是一個Web服務器,它實現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,旨在提供專業(yè)的 Python web應用發(fā)布和開發(fā)。Nginx中HttpUwsgiModule的作用就是與uWSGI服務器進行交換。WSGI是一種Web服務器網(wǎng)關接口。它是一個Web服務器(如nginx,uWSGI等服務器)與web應用(如用Flask框架寫的程序)通信的一種規(guī)范。

uwsgi:https://pypi.python.org/pypi/uWSGI

uwsgi 參數(shù)詳解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html

1、通過 pip 命令:

pip install uwsgi

2、通過源代碼安裝

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make

安裝完成后,在當前目錄下,你會獲得一個 uwsgi 二進制文件。

3、測試 uwsgi 是否正常:

uwsgi --version    # 查看 uwsgi 版本

1、第一個 WSGI 應用

讓我們從一個簡單的 "Hello World" 開始,新建 test.py 文件,內(nèi)容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

uWSGI Python 加載器將會搜索的默認函數(shù) application 。

接下來我們啟動 uWSGI 來運行一個 HTTP 服務器,將程序部署在HTTP端口 8001上:

uwsgi --http :8001 --wsgi-file test.py

在瀏覽器內(nèi)輸入:http://127.0.0.1:8001,查看是否有"Hello World"輸出,若沒有輸出,請檢查你的安裝過程。

2、添加并發(fā)和監(jiān)控

默認情況下,uWSGI 啟動一個單一的進程和一個單一的線程。

你可以用 --processes 選項添加更多的進程,或者使用 --threads 選項添加更多的線程 ,也可以兩者同時使用。

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2

以上命令將會生成 4 個進程, 每個進程有 2 個線程。

如果你要執(zhí)行監(jiān)控任務,可以使用 stats 子系統(tǒng),監(jiān)控的數(shù)據(jù)格式是 JSON:

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

我們可以安裝 uwsgitop(類似 Linux top 命令) 來查看監(jiān)控數(shù)據(jù):

pip install uwsgitop

3、uwsgi 配置

uwsgi支持ini、xml等多種配置方式,本文以 ini 為例, 在/etc/目錄下新建uwsgi9090.ini,添加如下配置:

[uwsgi]
socket = 127.0.0.1:9090
master = true         //主進程
vhost = true          //多站模式
no-site = true        //多站模式時不設置入口模塊和文件
workers = 2           //子進程數(shù)
reload-mercy = 10     
vacuum = true         //退出、重啟時清理文件
max-requests = 1000   
limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的腳本啟動、停止該進程
daemonize = /website/uwsgi9090.log

二、安裝 Nginx

我們可以將 uWSGI 和 Nginx Web 服務器結合使用,實現(xiàn)更高的并發(fā)性能。

安裝命令如下:

cd ~
wget http://nginx.org/download/nginx-1.5.6.tar.gz
tar xf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx-1.5.6 \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install

你可以閱讀 Nginx 安裝配置 了解更多內(nèi)容。

一個常用的nginx配置如下:

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:3031;
}

以上代碼表示使用 nginx 接收的 Web 請求傳遞給端口為 3031 的 uWSGI 服務來處理。

現(xiàn)在,我們可以生成 uWSGI 來本地使用 uwsgi 協(xié)議:

uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

如果你的 Web 服務器使用 HTTP,那么你必須告訴 uWSGI 本地使用 http 協(xié)議 (這與會自己生成一個代理的–http不同):

uwsgi --http-socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

Nginx 配置

找到nginx的安裝目錄(如:/usr/local/nginx/),打開conf/nginx.conf文件,修改server配置:

server {
        listen       80;
        server_name  localhost;
        
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:9090;              //必須和uwsgi中的設置一致
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相對于項目根目錄的位置,“.”相當于一層目錄
            uwsgi_param UWSGI_CHDIR /demosite;       //項目根目錄
            index  index.html index.htm;
            client_max_body_size 35m;
        }
    }

你可以閱讀 Nginx 安裝配置 了解更多內(nèi)容。

設置完成后,在終端運行:

uwsgi --ini /etc/uwsgi9090.ini &
/usr/local/nginx/sbin/nginx

在瀏覽器輸入:http://127.0.0.1,你就可以看到 django 的 "It work" 了。

三、部署 Django

Django 是最常使用的 Python web 框架,假設 Django 項目位于 /home/foobar/myproject:

uwsgi --socket 127.0.0.1:3031 --chdir /home/foobar/myproject/ --wsgi-file myproject/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

--chdir 用于指定項目路徑。

我們可以把以上的命令弄成一個 yourfile.ini 配置文件:

[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/foobar/myproject/
wsgi-file = myproject/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191

接下來你只需要執(zhí)行以下命令即可:

uwsgi yourfile.ini

四、部署 Flask

Flask 是一個流行的 Python web 框架。

創(chuàng)建文件 myflaskapp.py ,代碼如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "I am app 1"

執(zhí)行以下命令:

uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191

到此這篇關于Django+Nginx+uwsgi服務器部署的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Nginx配置之實現(xiàn)多臺服務器負載均衡

    Nginx配置之實現(xiàn)多臺服務器負載均衡

    這篇文章主要介紹了Nginx配置之實現(xiàn)多臺服務器負載均衡,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • zabbix配置nginx監(jiān)控的實現(xiàn)

    zabbix配置nginx監(jiān)控的實現(xiàn)

    本文主要介紹了zabbix配置nginx監(jiān)控的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • 詳解如何設置Nginx實現(xiàn)內(nèi)外網(wǎng)端口映射

    詳解如何設置Nginx實現(xiàn)內(nèi)外網(wǎng)端口映射

    在 Nginx 中實現(xiàn)內(nèi)外網(wǎng)端口映射是一種常見的做法,本文詳細介紹如何設置 Nginx 實現(xiàn)內(nèi)外網(wǎng)端口映射,有需要的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • nginx利用ctx實現(xiàn)數(shù)據(jù)共享、修改上下文功能

    nginx利用ctx實現(xiàn)數(shù)據(jù)共享、修改上下文功能

    這篇文章主要給大家介紹了關于nginx利用ctx實現(xiàn)數(shù)據(jù)共享、修改上下文功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • Nginx動靜分離實現(xiàn)案例代碼解析

    Nginx動靜分離實現(xiàn)案例代碼解析

    這篇文章主要介紹了Nginx動靜分離實現(xiàn)案例代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Nginx反向代理之proxy_redirect指令的實現(xiàn)

    Nginx反向代理之proxy_redirect指令的實現(xiàn)

    proxy_redirect指令是用來重置頭信息中的"Location"和"Refresh"的值,本文就來詳細的介紹一下如何使用,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • Nginx 反向代理并緩存及緩存清除的方法

    Nginx 反向代理并緩存及緩存清除的方法

    本篇文章主要介紹了Nginx 反向代理并緩存及緩存清除的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Nginx配置ssl證書(https)的全過程

    Nginx配置ssl證書(https)的全過程

    這篇文章主要介紹了Nginx配置ssl證書(https)的過程,在文中大家需要特別注意,如果有防火墻的話,記得開通443端口,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • 關于nginx日志增加cookie信息

    關于nginx日志增加cookie信息

    這篇文章主要介紹了nginx日志增加cookie信息的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • Linux部署Nginx實現(xiàn)反向代理的方法步驟

    Linux部署Nginx實現(xiàn)反向代理的方法步驟

    Nginx 是一種常用、輕型且快速的 Web 服務器, 它可以在 Linux 和 Windows 上運行,并且可以配置為反向代理服務器,本文主要介紹了Linux部署Nginx實現(xiàn)反向代理的方法步驟,感興趣的可以了解一下
    2023-08-08

最新評論

会泽县| 阜南县| 石嘴山市| 新余市| 宜宾县| 林口县| 自贡市| 安阳市| 黑龙江省| 桐城市| 水城县| 南靖县| 裕民县| 泸溪县| 滕州市| 新干县| 新密市| 库尔勒市| 尉氏县| 湖州市| 湘潭市| 龙海市| 沁水县| 鹤峰县| 五台县| 高安市| 梨树县| 孝感市| 普格县| 昭苏县| 东辽县| 尤溪县| 朝阳县| 阿荣旗| 高邮市| 财经| 邵阳县| 永州市| 施秉县| 大埔县| 体育|