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

聊聊Django+uwsgi+nginx服務(wù)器部署問題

 更新時(shí)間:2022年03月02日 09:02:15   作者:Jason?20  
這篇文章主要介紹了Django+uwsgi+nginx服務(wù)器部署的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

準(zhǔn)備工作

推薦使用anaconda進(jìn)行python環(huán)境的管理,因python環(huán)境容易出現(xiàn)各種版本沖突問題

安裝anaconda:

wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
bash Anaconda3-2020.11-Linux-x86_64.sh

一路回車,有提示后“yes”再回車,這里安裝到的目錄在/root下

把conda添加到環(huán)境變量

vim /etc/profile

在文件末尾添加

PATH=$PATH:/root/anaconda3/bin		# 根據(jù)目錄情況
export PATH

啟用環(huán)境變量

source /etc/profile

新增合適的虛擬環(huán)境

conda env list			# 查看環(huán)境
conda create -n myDjango python=3.7.5
conda activate myDjango
# 啟動(dòng)虛擬環(huán)境時(shí)可能需要先
source activate

安裝需要的組件

需要的有django,uwsgi,nginx

pip install django		# 版本為4以上
pip install uwsgi		
yum install nginx

使用查看版本語句查看是否安裝成功

python -m django --version
uwsgi --version
nginx -V

創(chuàng)建django程序(本地)

可在pycharm中一鍵創(chuàng)建,也可以使用命令行創(chuàng)建

django-admin startproject mysite

獲得目錄如下

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • manage.py 用于啟動(dòng)項(xiàng)目 python manage.py runserver
  • 二級(jí)mysite可對(duì)項(xiàng)目進(jìn)行整體配置
  • mysite/settings.py 項(xiàng)目配置文件,包含數(shù)據(jù)庫,debug,語言時(shí)區(qū)等
  • mysite/urls.py 配置項(xiàng)目路由
  • mysite/wsgi.py 使用uwsgi管理django程序時(shí)需要用到

創(chuàng)建應(yīng)用

python manage.py startapp myApp

得到app目錄如下,可在此編寫視圖模塊等,然后在urls內(nèi)編寫路由以提供訪問,不再贅述

myApp/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

使用文件傳輸工具將django程序傳輸?shù)椒?wù)器

可使用xftp,filezilla或?qū)毸?/p>

部署工作

配置uwsgi

在以放到服務(wù)器上的django項(xiàng)目目錄下創(chuàng)建uwsgi.ini文件,即uwsgi配置

我的項(xiàng)目目錄為/home/mysite

[uwsgi]
chdir=/home/djangoProject	# 項(xiàng)目位置
#socket=:8000				# 通過nginx使用的配置
http=:8000					# 單獨(dú)啟動(dòng)時(shí)使用的配置
wsgi-file=/home/djangoProject/djangoProject/wsgi.py		# 項(xiàng)目中wsgi文件位置
process=4
threads=2
pidfile=uwsgi.pid			# 生產(chǎn)pid,log文件,以查看日志和pid信息
daemonize=uwsgi.log
master=True

此時(shí)可以啟動(dòng)uwsgi來啟動(dòng)項(xiàng)目

uwsgi --ini uwsgi.ini	# 通過剛創(chuàng)立的ini配置來啟動(dòng),會(huì)生成pid和log文件
uwsgi --stop uwsgi.pid	# 必須使用pid文件來停止程序

此時(shí)可以使用端口查看語句查看程序是否已經(jīng)運(yùn)行

netstat -tlnp|grep 8000	# django程序默認(rèn)開啟端口為8000,也可在ini文件中自行修改

若已成功啟動(dòng),一句可以通過訪問域名/ip:8000訪問django程序

配置nginx

首先需要將uwsgi.ini配置進(jìn)行更改,取消http,打開socket

[uwsgi]
chdir=/home/djangoProject	# 項(xiàng)目位置
socket=:8000				# 通過nginx使用的配置
#http=:8000					# 單獨(dú)啟動(dòng)時(shí)使用的配置
wsgi-file=/home/djangoProject/djangoProject/wsgi.py		# 項(xiàng)目中wsgi文件位置
process=4
threads=2
pidfile=uwsgi.pid			# 生產(chǎn)pid,log文件,以查看日志和pid信息
daemonize=uwsgi.log
master=True

nginx配置文件默認(rèn)在/etc/nginx/nginx.conf,需要編輯的是http下的server內(nèi)容
location中增加兩個(gè)內(nèi)容

uwsgi_pass 0.0.0.0:8000;			# 與uwsgi.ini文件配置的socket保持一致
include /etc/nginx/uwsgi_params;	# 引用nginx的uwsgi_params載入?yún)?shù)

server部分如下

server {
    listen       80;
    listen       [::]:80;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
    		uwsgi_pass 0.0.0.0:8000;
    		include /etc/nginx/uwsgi_params;
    }
}

可以用nginx -t語句檢查是否合法
通過server語句啟動(dòng)/停止/重啟 nginx

server nginx start/stop/restart

nginx默認(rèn)開啟端口為80,也可通過查看端口情況觀察是否成功開啟

netstat -tlnp|grep 80

若啟動(dòng)成功則nginx反向代理成功,已經(jīng)可以通過訪問80端口訪問django程序

配置ssl證書以提供https訪問

需要在服務(wù)器代理廠商處申請(qǐng)ssl證書并下載nginx版本,將得到包含域名在內(nèi)的證書文件.pem和證書密鑰.key,將兩個(gè)文件傳輸?shù)椒?wù)器nginx目錄下,最好建立一個(gè)證書專用目錄

更改nginx.conf配置文件server內(nèi)容

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  _;
    root         /usr/share/nginx/html;

    ssl_certificate "/etc/nginx/cert/證書名.pem";
    ssl_certificate_key "/etc/nginx/證書密鑰.key";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
            uwsgi_pass 0.0.0.0:8000;
            include /etc/nginx/uwsgi_params;
    }
    error_page 404 /404.html;
        location = /40x.html {
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
}

注:每次更改nginx配置都需要重啟nginx服務(wù)才能生效

到此這篇關(guān)于Django+uwsgi+nginx服務(wù)器部署的文章就介紹到這了,更多相關(guān)Django+uwsgi+nginx服務(wù)器部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一次nginx崩潰事件的實(shí)戰(zhàn)記錄

    一次nginx崩潰事件的實(shí)戰(zhàn)記錄

    nginx是一個(gè)被廣泛使用的集群架構(gòu)組件,我們有必要對(duì)它有足夠的了解,下面這篇文章主要給大家介紹了一次nginx崩潰事件的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Nginx自定義日志中時(shí)間格式的操作方法

    Nginx自定義日志中時(shí)間格式的操作方法

    工作需要對(duì)接內(nèi)部的日志中臺(tái),對(duì)日志打印有固定的格式要求,為了使Nginx的access日志也能被采集,需要對(duì)日志格式進(jìn)行自定義,這篇文章主要介紹了Nginx自定義日志中時(shí)間格式,需要的朋友可以參考下
    2023-11-11
  • nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法

    nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法

    這篇文章主要介紹了nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Kubernetes中Nginx服務(wù)啟動(dòng)失敗排查流程分析(Error:?ImagePullBackOff)

    Kubernetes中Nginx服務(wù)啟動(dòng)失敗排查流程分析(Error:?ImagePullBackOff)

    這篇文章主要介紹了Kubernetes中Nginx服務(wù)啟動(dòng)失敗排查流程(Error:?ImagePullBackOff),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Nginx限流和黑名單配置的策略

    Nginx限流和黑名單配置的策略

    這篇文章主要介紹了Nginx限流和黑名單配置,Nginx的限流主要是兩種方式,限制訪問頻率和限制并發(fā)連接數(shù),Nginx?按請(qǐng)求速率限速模塊使用的是漏桶算法,即能夠強(qiáng)行保證請(qǐng)求的實(shí)時(shí)處理速度不會(huì)超過設(shè)置的閾值,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • Nginx配置動(dòng)態(tài)代理后通過curl訪問報(bào)403問題

    Nginx配置動(dòng)態(tài)代理后通過curl訪問報(bào)403問題

    本文主要介紹了Nginx配置動(dòng)態(tài)代理后通過curl訪問報(bào)403問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • nginx共享內(nèi)存的機(jī)制詳解

    nginx共享內(nèi)存的機(jī)制詳解

    在nginx的進(jìn)程模型下,類似流量統(tǒng)計(jì)、流量控制、數(shù)據(jù)共享、等需要多個(gè)工作進(jìn)程共同配合完成任務(wù),共享內(nèi)存是一個(gè)重要的進(jìn)程通訊的方案,本文主要介紹了nginx共享內(nèi)存的機(jī)制詳解,感興趣的可以了解一下
    2022-03-03
  • CentOS 7下編譯安裝Nginx 1.11.10教程

    CentOS 7下編譯安裝Nginx 1.11.10教程

    這篇文章主要介紹了在CentOS 7下編譯安裝Nginx 1.11.10的方法,文中給出了詳細(xì)的安裝步驟,相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Nginx 介紹及日常管理的詳解

    Nginx 介紹及日常管理的詳解

    這篇文章主要介紹了Nginx 介紹及日常管理的詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Ubuntu上安裝Nginx服務(wù)器程序及簡單的環(huán)境配置小結(jié)

    Ubuntu上安裝Nginx服務(wù)器程序及簡單的環(huán)境配置小結(jié)

    Nginx是一款高性能的異步非阻塞服務(wù)器應(yīng)用程序,人氣相當(dāng)高,這里我們就來看一下在Ubuntu上安裝Nginx服務(wù)器程序及簡單的環(huán)境配置小結(jié):
    2016-07-07

最新評(píng)論