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

Nginx+uWSGI部署實踐

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

一:Nginx + uWSGI部署框架

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

如果是動態(tài)請求,則將請求轉發(fā)給uwsgi服務器,uwsgi調用我們的django進行處理請求,然后一步一步的再返回。

1.1:WSGI接口

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

1.2:uWSGI 服務器

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

1.3: uwsgi協(xié)議

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

二: uwsgi

2.1:uwsgi的安裝

pip install uwsgi

2.2:uwsgi的配置

將Django項目中的settings.py中的兩個配置進行修改:

DEBUG = FALSE
ALLOWED_HOSTS = [*]

在項目下新建一個配置文件uwsgi.ini:

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

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

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

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

# 6: 主進程的配置
master = True  # 開啟主進程
pidfile = uwsgi.pid # 在項目中的wsgi.py所在的目錄下,生成一個uwsgi.pid專門記錄主進程的id

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

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

2.3:啟動和停止

uwsgi --ini 配置文件路徑

  • 例如:
uwsgi --ini uwsgi.ini

uwsgi --stop uwsgi.pid路徑

  • 例如:
uwsgi --stop uwsgi.pid

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

3.1: 修改uwsgi的配置文件

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

3.2: 修改Nginx的配置文件

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

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

4.1:修改Nginx的配置文件

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

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

在django的settings配置文件中:

STATIC_ROOT = '/var/www/static/'

修改static文件的權限:

sudo chmod 777 /var/www/static/

運行命令:

python3 manage.py collectstatic

五:Nginx轉交請求給其他地址

案例:

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

5.1: Nginx增加配置項

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

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

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

修改Nginx配置文件:

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

# 2: 指定上游名字,則會隨機選擇其中一個轉發(fā)。
location / {
    include uwsgi_params;
    uwsgi_pass 名字;
}

總結

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

相關文章

最新評論

凤山市| 金门县| 海伦市| 保亭| 青州市| 句容市| 渭南市| 布尔津县| 黎平县| 眉山市| 邹城市| 黔江区| 龙口市| 玉田县| 仁化县| 会宁县| 会宁县| 广东省| 车险| 公安县| 铜鼓县| 衢州市| 水富县| 大丰市| 丹棱县| 伊宁县| 沙湾县| 富源县| 大荔县| 威远县| 尼木县| 青神县| 郓城县| 绥德县| 九龙县| 烟台市| 安新县| 子洲县| 台中县| 洛扎县| 肥东县|