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

Nginx+uWSGI部署實(shí)踐

 更新時(shí)間:2025年12月31日 08:56:57   作者:StanwenRen  
文章介紹了如何使用Nginx和uWSGI部署Django應(yīng)用,包括配置WSGI接口、安裝和配置uWSGI、關(guān)聯(lián)uWSGI和Nginx、配置靜態(tài)文件、轉(zhuǎn)交請(qǐng)求給其他地址以及實(shí)現(xiàn)負(fù)載均衡

一:Nginx + uWSGI部署框架

首先用戶瀏覽器向nginx發(fā)送請(qǐng)求,nginx判斷是動(dòng)態(tài)請(qǐng)求還是靜態(tài)請(qǐng)求,如果是靜態(tài)請(qǐng)求,則直接返回靜態(tài)文件。

如果是動(dòng)態(tài)請(qǐng)求,則將請(qǐng)求轉(zhuǎn)發(fā)給uwsgi服務(wù)器,uwsgi調(diào)用我們的django進(jìn)行處理請(qǐng)求,然后一步一步的再返回。

1.1:WSGI接口

  • WSGI是Web 服務(wù)器(uWSGI)與 Web 應(yīng)用程序或應(yīng)用框架(Django)之間的一種低級(jí)別的接口

1.2:uWSGI 服務(wù)器

  • uWSGI是一個(gè)Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議。

1.3: uwsgi協(xié)議

  • uwsgi是Nginx服務(wù)器和uWSGI服務(wù)器的通信協(xié)議,規(guī)定了怎么把請(qǐng)求轉(zhuǎn)發(fā)給應(yīng)用程序和返回。

二: uwsgi

2.1:uwsgi的安裝

pip install uwsgi

2.2:uwsgi的配置

將Django項(xiàng)目中的settings.py中的兩個(gè)配置進(jìn)行修改:

DEBUG = FALSE
ALLOWED_HOSTS = [*]

在項(xiàng)目下新建一個(gè)配置文件uwsgi.ini:

[uwsgi]
# 1: uwsgi直接作為web服務(wù)器時(shí),使用的ip和端口
http= 127.0.0.1:8000
    
# 2:指定項(xiàng)目的目錄
chdir = /home/python/Desktop/meiduo_mall_project/meiduo_mall

# 3: 指定項(xiàng)目中的wsgi.py所在的目錄:(這個(gè)文件是usgi的啟動(dòng)入口)
wsgi-file = meiduo_mall/wsgi.py

# 4:指定uwsgi工作的進(jìn)程數(shù)
processes = 4

# 5: 指定工作的每個(gè)進(jìn)程下的線程數(shù)
threads = 2

# 6: 主進(jìn)程的配置
master = True  # 開(kāi)啟主進(jìn)程
pidfile = uwsgi.pid # 在項(xiàng)目中的wsgi.py所在的目錄下,生成一個(gè)uwsgi.pid專門記錄主進(jìn)程的id

# 7: 指定uwsgi的日志文件
daemonize = uwsgi.log 

# 8:指定運(yùn)行的虛擬環(huán)境的路徑
virtualenv = /home/python/.virtualenvs/django_env

2.3:?jiǎn)?dòng)和停止

uwsgi --ini 配置文件路徑

  • 例如:
uwsgi --ini uwsgi.ini

uwsgi --stop uwsgi.pid路徑

  • 例如:
uwsgi --stop uwsgi.pid

三:uwsgi和Nginx如何關(guān)聯(lián)

3.1: 修改uwsgi的配置文件

[uwsgi]
# 1: uwsgi與nginx連接時(shí),使用的ip和端口
socket = 127.0.0.1:8000

3.2: 修改Nginx的配置文件

server {
    location / {
        # 包含uwsgi的請(qǐng)求參數(shù)
        include uwsgi_params;
        # 轉(zhuǎn)交給uwsgi
        uwsgi_pass 127.0.0.1:8000
    }
}

四:Nginx 配置靜態(tài)文件

4.1:修改Nginx的配置文件

# 增加一個(gè)location
location /static {
    # 指定靜態(tài)文件存放的目錄
    alias /var/www/static/;
}

4.2:將項(xiàng)目用到的所有靜態(tài)文件指定到某個(gè)目錄下

在django的settings配置文件中:

STATIC_ROOT = '/var/www/static/'

修改static文件的權(quán)限:

sudo chmod 777 /var/www/static/

運(yùn)行命令:

python3 manage.py collectstatic

五:Nginx轉(zhuǎn)交請(qǐng)求給其他地址

案例:

Celery實(shí)現(xiàn)了主頁(yè)的頁(yè)面靜態(tài)化,我們想讓如果前端傳遞的是主頁(yè),專門找我的一個(gè)Nginx服務(wù)器去要。

5.1: Nginx增加配置項(xiàng)

location = / {
    # 傳遞給靜態(tài)文件的nginx服務(wù)器。
    proxy_pass http://192.168.203.153: 8082;
}

六: Nginx實(shí)現(xiàn)負(fù)載均衡的配置

復(fù)制多臺(tái) uwsgi.ini文件修改文件(id和端口),根據(jù)這些文件啟動(dòng)Django。

修改Nginx配置文件:

# 1: 在server外面增加配置upstream
upstream 名字 {
    server 127.0.0.1: 8080;
    server 127.0.0.1: 8081;
}

# 2: 指定上游名字,則會(huì)隨機(jī)選擇其中一個(gè)轉(zhuǎn)發(fā)。
location / {
    include uwsgi_params;
    uwsgi_pass 名字;
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

横山县| 内江市| 江孜县| 休宁县| 永平县| 宣武区| 象山县| 革吉县| 明星| 平阳县| 稻城县| 于田县| 潢川县| 乡宁县| 正定县| 繁峙县| 新巴尔虎右旗| 浏阳市| 慈利县| 昌宁县| 惠水县| 渝北区| 麻江县| 丹寨县| 竹溪县| 黑河市| 武乡县| 牟定县| 寿光市| 渭南市| 洪湖市| 颍上县| 福海县| 汨罗市| 辽源市| 贵定县| 安达市| 噶尔县| 沭阳县| 潞西市| 和林格尔县|