欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django+Nginx+uwsgi服務(wù)器部署

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

一、安裝 uwsgi

uWSGI是一個(gè)Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,旨在提供專業(yè)的 Python web應(yīng)用發(fā)布和開發(fā)。Nginx中HttpUwsgiModule的作用就是與uWSGI服務(wù)器進(jìn)行交換。WSGI是一種Web服務(wù)器網(wǎng)關(guān)接口。它是一個(gè)Web服務(wù)器(如nginx,uWSGI等服務(wù)器)與web應(yīng)用(如用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

安裝完成后,在當(dāng)前目錄下,你會獲得一個(gè) uwsgi 二進(jìn)制文件。

3、測試 uwsgi 是否正常:

uwsgi --version    # 查看 uwsgi 版本

1、第一個(gè) WSGI 應(yīng)用

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

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

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

接下來我們啟動 uWSGI 來運(yùn)行一個(gè) HTTP 服務(wù)器,將程序部署在HTTP端口 8001上:

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

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

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

默認(rèn)情況下,uWSGI 啟動一個(gè)單一的進(jìn)程和一個(gè)單一的線程。

你可以用 --processes 選項(xiàng)添加更多的進(jìn)程,或者使用 --threads 選項(xiàng)添加更多的線程 ,也可以兩者同時(shí)使用。

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

以上命令將會生成 4 個(gè)進(jìn)程, 每個(gè)進(jìn)程有 2 個(gè)線程。

如果你要執(zhí)行監(jiān)控任務(wù),可以使用 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)控?cái)?shù)據(jù):

pip install uwsgitop

3、uwsgi 配置

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

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

二、安裝 Nginx

我們可以將 uWSGI 和 Nginx Web 服務(wù)器結(jié)合使用,實(shí)現(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)容。

一個(gè)常用的nginx配置如下:

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

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

現(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 服務(wù)器使用 HTTP,那么你必須告訴 uWSGI 本地使用 http 協(xié)議 (這與會自己生成一個(gè)代理的–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中的設(shè)置一致
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相對于項(xiàng)目根目錄的位置,“.”相當(dāng)于一層目錄
            uwsgi_param UWSGI_CHDIR /demosite;       //項(xiàng)目根目錄
            index  index.html index.htm;
            client_max_body_size 35m;
        }
    }

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

設(shè)置完成后,在終端運(yùn)行:

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

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

三、部署 Django

Django 是最常使用的 Python web 框架,假設(shè) Django 項(xiàng)目位于 /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 用于指定項(xiàng)目路徑。

我們可以把以上的命令弄成一個(gè) 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 是一個(gè)流行的 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

到此這篇關(guān)于Django+Nginx+uwsgi服務(wù)器部署的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 反向代理緩存的詳細(xì)介紹

    反向代理緩存的詳細(xì)介紹

    這篇文章主要介紹了反向代理緩存的詳細(xì)介紹的相關(guān)資料,希望通過本文大家能夠掌握應(yīng)用反向代理緩存的使用方法,需要的朋友可以參考下
    2017-09-09
  • nginx HTTP模塊配置常用指令

    nginx HTTP模塊配置常用指令

    這篇文章主要介紹了nginx HTTP模塊在配置文件中常用的指令,詳解了每個(gè)指令的含義、語法和注意事項(xiàng)等,需要的朋友可以參考下
    2014-03-03
  • Nginx報(bào)404錯(cuò)誤的詳細(xì)解決方法

    Nginx報(bào)404錯(cuò)誤的詳細(xì)解決方法

    最近打開網(wǎng)站看看結(jié)果提示:nginx 404 not found,所以這篇文章主要給大家介紹了關(guān)于Nginx報(bào)404錯(cuò)誤的簡單解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Nginx啟用gzip壓縮的方法示例

    Nginx啟用gzip壓縮的方法示例

    這篇文章主要介紹了Nginx啟用gzip壓縮的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • nginx配置中proxy_pass反向代理502的bug記錄

    nginx配置中proxy_pass反向代理502的bug記錄

    這篇文章主要介紹了nginx配置中proxy_pass反向代理502的bug記錄,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 詳解Nginx之Location配置(Location匹配順序)

    詳解Nginx之Location配置(Location匹配順序)

    這篇文章主要介紹了詳解Nginx之Location配置(Location匹配順序),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • windows系統(tǒng)下關(guān)閉Nignx的多種方式總結(jié)

    windows系統(tǒng)下關(guān)閉Nignx的多種方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了windows系統(tǒng)下關(guān)閉Nignx的多種方式, 在Windows中啟動Nginx是簡單的,但有許多小伙伴不會關(guān)閉,這里給大家介紹下,需要的朋友可以參考下
    2023-08-08
  • Nginx實(shí)現(xiàn)https網(wǎng)站配置代碼實(shí)例

    Nginx實(shí)現(xiàn)https網(wǎng)站配置代碼實(shí)例

    這篇文章主要介紹了Nginx實(shí)現(xiàn)https網(wǎng)站配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Nginx 代理轉(zhuǎn)發(fā)阿里云OSS上傳的實(shí)現(xiàn)代碼

    Nginx 代理轉(zhuǎn)發(fā)阿里云OSS上傳的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Nginx 代理轉(zhuǎn)發(fā)阿里云OSS上傳的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Nginx 獲取客戶端真實(shí)IP $remote_addr與X-Forwarded-For的實(shí)現(xiàn)

    Nginx 獲取客戶端真實(shí)IP $remote_addr與X-Forwarded-For的實(shí)現(xiàn)

    我們大多數(shù)情況下訪問服務(wù)時(shí),客戶端并不是直接訪問到服務(wù)器的,本文主要介紹了Nginx 獲取客戶端真實(shí)IP $remote_addr與X-Forwarded-For的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評論