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

centos7下基于nginx+uwsgi部署Django項目的實現(xiàn)

 更新時間:2024年04月01日 09:53:01   作者:唐僧騎白馬  
Django是一個開源的Web應(yīng)用框架,使用Python語言編寫,主要用于搭建Web項目,本教程介紹如何在centos7下基于nginx+uwsgi部署Django項目的實現(xiàn),感興趣的可以了解一下

一:基礎(chǔ)環(huán)境介紹:

  • Centos:7.8(cat /etc/redhat-release查看版本號)
  • Python:3.9.5(python -V查看版本號)
  • Django:4.2(django-admin --version查看版本號)
  • Uwsgi:2.0.21(uwsgi --version查看版本號)
  • Nginx:1.20.1 (nginx -v查看版本號)
  • mysql-community-common-8.0(可自行安裝)

二:部署環(huán)境安裝配置:

1.基礎(chǔ)依賴環(huán)境安裝

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel 
ncurses-devel sqlite-devel readline-devel tk-devel
 gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

2.安裝wegt,vim,unzip等必須命令

yum -y install wget vim unzip

3.安裝python與pip(或者python多版本管理工具pyenv等)

## 1.下載自己需要版本的python版本包
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
 
## 2.新建python3目錄
mkdir /usr/local/python3
 
## 3.安裝Python3壓縮包,進入解壓目錄,指定安裝目錄,安裝Python3
tar -xvf  Python-3.9.5.tar.xz
cd Python-3.9.5
./configure --prefix=/usr/local/python3
make && make install
 
## 4.安裝Python3時,會自動安裝pip,如果沒有就手動安裝
yum -y install python-pip
 
## 5.pip配置(更換pip的源)
(1)編輯pip.conf
[root@localhost ~]# cd ~ 
[root@localhost ~]# mkdir .pip 
[root@localhost ~]# vim pip.conf
 
 
 
[global] 
index-url = https://mirrors.aliyun.com/pypi/simple/ 
[install] 
trusted-host=mirrors.aliyun.com
 

 
(2) 安裝依賴安裝好pip
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum install python-pip
[root@localhost ~]# pip install --upgrade pip
 
## 6.升級下pip
pip install --upgrade pip
 
 
## 7.創(chuàng)建軟鏈接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
 
 
## 輸入python3測試是否安裝成功
python -V

4.安裝nginx

## 1.yum方式安裝nginx
yum -y install nginx
 
## 2.查看nginx版本
nginx -v
 
## 3.啟動nginx
systemctl status nginx  ## 查看nginx狀態(tài)
 
systemctl start nginx   ## 開啟nginx服務(wù)
 
systemctl stop nginx     ## 關(guān)閉nginx服務(wù)

5.安裝uwsgi

## 1.安裝uwsgi
pip3 install uwsgi
 
## 2.建立軟鏈接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
 
## 3.查看uwsgi版本
uwsgi --version

三:部署django項目:

1.上傳項目并安裝項目模塊并啟動測試

## 1.pip導(dǎo)出項目依賴包
pip freeze > requirements.txt

## 2.上傳文件到服務(wù)器
 
## 3.解壓項目
unzaip tman.zip
 
## 4.pip安裝項目依賴模塊
pip3 install -r requirements.txt
 
## 5.通過python3 manage.py runserver運行一下項目,如果能正常啟動則進行下一步,不能正常運行往上檢查。
這里需要注意使用python3來執(zhí)行manage.py,否則會出現(xiàn)報錯情況!

2.在項目里配置uwsgi.ini配置文件

(1)在settings.py所在目錄vim新文件項目名稱.ini

在這里插入圖片描述

(2)配置項目名稱.ini文件

[uwsgi]
master=true
chdir=/var/tman
module=tman.wsgi
py-autoreload=1
lazy-apps=true  
socket=127.0.0.1:8000
processes=4
# pid文件,用于腳本啟動,停止
pidfile=uwsgi.pid
buffer-size=32768
daemonize=uwsgi.log
log-maxsize = 5000000
vacuum = true
disable-logging = true

(3)檢查settings.py配置并收集項目靜態(tài)文件
一般都是這個配置,我的是基于vue的前后端分離項目:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'dist/static'),
]

STATIC_URL = 'static/'

url.py配置:

from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include('tadmin.urls')),
    path('', TemplateView.as_view(template_name='index.html'))
]

非前后端分離項目可以使用如下命令收集靜態(tài)文件:

python manage.py collectstatic

基于vue使用如下命令進行前端打包:

npm run build

(4)啟動測試,并查看日志

## 在當(dāng)前目錄啟動
uwsgi -i tman.ini
 
## 啟動之后查看進程
ps -ef | grep uwsgi

在這里插入圖片描述

查看進程

在這里插入圖片描述

查看日志

在這里插入圖片描述

3.配置nginx

vim /etc/nginx/nginx.conf

nginx.conf配置

 server {
        listen       80;
        listen       [::]:80;
        server_name 192.168.75.188;
        charset utf-8;

        location /static/ {
          alias /var/tman/dist/static/;
          index index.html index.htm;
        }
  
        location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8000;
        }
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

(4)啟動nginx

[root@localhost tman]# nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost tman]# nginx -s reload

(5)訪問項目http://192.168.75.188/#/

在這里插入圖片描述

四:備注

之后項目重啟只需要重啟uwsgi之后再重啟nginx即可,切記正式環(huán)境要關(guān)掉django的debug模式,防止報錯源碼被看到。

## 項目重啟
killall -9  uwsgi
uwsgi -i tman.ini
nginx -s reload

uwsgi操作

uwsgi --ini uwsgi.ini
# 重啟uswgi
uwsgi --reload uwsgi.pid
# 停止uwsgi
uwsgi --stop uwsgi.pid

五、部署報錯:

(1)pip3安裝mysqlclient==2.1.1報錯

/bin/sh: mysql_config: command not found
/bin/sh: mariadb_config: command not found
/bin/sh: mysql_config: command not found

解決辦法:

yum -y  install mysql-devel

Error: MariaDB-compat conflicts with 1:mariadb-libs-5.5.68-1.el7.x86_64
Error: Package: 1:mariadb-devel-5.5.68-1.el7.x86_64 (base)
           Requires: mariadb-libs(x86-64) = 1:5.5.68-1.el7
           Installed: MariaDB-compat-10.4.25-1.el7.centos.x86_64 (@mariadb)
               mariadb-libs(x86-64) = 1:10.1.48-1.el7.centos
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

解決辦法:

yum remove MariaDB-common

(2)open() "/root/tman/dist/static/js/vendor.652814051b5133caa1e9.js" failed (13: Permission denied)

原因,nginx目錄權(quán)限問題,我將項目放在root下,導(dǎo)致nginx權(quán)限不足,解決辦法,將項目移到其他目錄,如/var等

到此這篇關(guān)于centos7下基于nginx+uwsgi部署Django項目的實現(xiàn)的文章就介紹到這了,更多相關(guān)nginx uwsgi部署Django內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Docker中實現(xiàn)Nginx平滑重啟的幾種方法

    在Docker中實現(xiàn)Nginx平滑重啟的幾種方法

    關(guān)于平滑重啟的意思,就是指已經(jīng)連接到nginx的請求將繼續(xù)使用舊的配置,待客戶端服務(wù)完成后,舊的工作進程將關(guān)閉,下次請求將采用新的配置,本文給大家介紹了在Docker中實現(xiàn)Nginx平滑重啟的幾種方法,需要的朋友可以參考下
    2025-09-09
  • Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息

    Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息

    本文主要介紹了Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息,通過配置Nginx的ACL,可以輕松實現(xiàn),下面就來具體介紹一下,感興趣的可以了解一下
    2024-03-03
  • 在Nginx中配置image filter模塊來實現(xiàn)動態(tài)生成縮略圖

    在Nginx中配置image filter模塊來實現(xiàn)動態(tài)生成縮略圖

    這篇文章主要介紹了在Nginx中配置image filter模塊來實現(xiàn)動態(tài)生成縮略圖的方法,包括縮略圖尺寸的設(shè)置等方面的介紹,需要的朋友可以參考下
    2015-12-12
  • 如何解決Nginx請求轉(zhuǎn)發(fā)將POST變?yōu)镚ET問題

    如何解決Nginx請求轉(zhuǎn)發(fā)將POST變?yōu)镚ET問題

    這篇文章主要介紹了如何解決Nginx請求轉(zhuǎn)發(fā)將POST變?yōu)镚ET問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié)

    ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié)

    configmap可以通過ENV環(huán)境變量和文件兩種方式掛載到容器中,修改configmap后容器中對應(yīng)的ENV環(huán)境變量不會更新,將配置文件nginx.conf以configmap文件的方式掛載到容器中,本文介紹ConfigMap掛載與Subpath在Nginx容器中的應(yīng)用小結(jié),感興趣的朋友一起看看吧
    2024-03-03
  • Nginx中指令server_name的詳細使用指南

    Nginx中指令server_name的詳細使用指南

    對于Web開發(fā)者來說,Nginx是一個強大且靈活的Web服務(wù)器和反向代理服務(wù)器,下面這篇文章主要介紹了Nginx中指令server_name詳細使用的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-07-07
  • Nginx 緩存清理的具體實現(xiàn)

    Nginx 緩存清理的具體實現(xiàn)

    Nginx通過緩存機制加速Web服務(wù),并提供高效的響應(yīng)和減少后端服務(wù)器負載,緩存數(shù)據(jù)需要定期清理以管理磁盤空間和確保數(shù)據(jù)時效性,下面就來介紹一下,感興趣的可以了解一下
    2024-12-12
  • Linux中Nginx的防盜鏈和優(yōu)化的實現(xiàn)代碼

    Linux中Nginx的防盜鏈和優(yōu)化的實現(xiàn)代碼

    今天是周末小編在值班哈,很開森,工作使我快樂,本文重點給大家介紹Linux中Nginx的防盜鏈和優(yōu)化問題及實現(xiàn)代碼,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • nginx https 443端口配置的方法

    nginx https 443端口配置的方法

    本文主要介紹了nginx https 443端口配置的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Nginx報錯host not found in upstream的解決辦法

    Nginx報錯host not found in upstream的解決辦法

    本文主要介紹了Nginx報錯host not found in upstream的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評論

竹北市| 河东区| 青阳县| 石嘴山市| 吴江市| 太湖县| 三亚市| 罗山县| 都兰县| 神池县| 铁岭市| 广西| 宁化县| 田阳县| 马尔康县| 瓮安县| 天台县| 肃宁县| 桃江县| 蛟河市| 富民县| 饶河县| 会泽县| 芮城县| 茂名市| 山阳县| 屏山县| 运城市| 淮阳县| 个旧市| 喀喇| 华安县| 双柏县| 塘沽区| 邳州市| 株洲市| 阜南县| 永嘉县| 桂平市| 翁牛特旗| 牡丹江市|