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

一文教會你用nginx+uwsgi部署自己的django項目

 更新時間:2022年08月21日 10:31:29   作者:小彭要努力學(xué)習(xí)吖  
uWSGI是一個Web服務(wù)器,它實現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,下面這篇文章主要給大家介紹了關(guān)于用nginx+uwsgi部署自己的django項目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

第一步:換源

輸入命令換掉Ubuntu的下載源

sudo nano /etc/apt/sources.list

將以下全部替換掉原文件,我這里用的是阿里的源,你也可以換其他的。

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu/ bionic multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-security universe
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
分別輸入以下命令,更新源
sudo apt update
sudo apt upgrade

第二步:安裝相關(guān)包

1.安裝python3

# 安裝python3
sudo apt install python3
# 查看python安裝路徑:
which python
# 查看python版本:建議使用3.6之后的版本,因為其他的筆者沒試過,筆者用的是3.6.9版本
python

2.安裝openssh-server和net-tools

# 安裝 openssh-server
sudo apt install openssh-server
#開啟:
sudo service ssh start
 
# 安裝net-tools  
sudo apt install net-tools
# 查看虛擬機(jī)ip:
ifconfig

如下圖所示,就是我們的虛擬機(jī)IP

 安裝django的運行環(huán)境

#安裝django運行環(huán)境:
sudo apt install virtualenv
# 創(chuàng)建環(huán)境
virtualenv --python=/usr/bin/python3 myblog
# 進(jìn)入環(huán)境:
cd myblog
# 激活環(huán)境:
source bin/activate

安裝django:pip3 install Django

創(chuàng)建項目:django-admin.py startproject blog

激活并且創(chuàng)建好項目之后就基本和下圖所示差不多了

# 進(jìn)入到blog中安裝 uwsgi:
pip3 install uwsgi

第三步:寫入測試文件并測試運行

1.寫入測試文件

安裝好之后我們再寫一個測試文件,用來測試我們項目的運行方式,實際項目也是一樣的。這里我用的是nano編輯寫入方式,你也可以使用vim,方式不限,能創(chuàng)建寫入即可寫入命令為:

sudo nano test.py

需要寫入的文件內(nèi)容為:

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

2.測試運行

測試命令為:uwsgi --http :8000 --wsgi-file test.py

回車之后,我們在瀏覽器輸入ip加port端口號,我的是192.168.217.133:8000。在瀏覽器打開發(fā)現(xiàn)報了以下錯誤。

 對于這個錯誤,我們只需要打開項目文件的settings.py文件,在ALLOWED_HOSTS里面添加自己虛擬機(jī)的地址,就ok了,然后我們再測試運行,發(fā)現(xiàn)正常,網(wǎng)頁輸出hello world。這里說明uwsgi能夠正常運行測試文件。

但是我們并不是為了運行test.py文件,我們是為了運行自己的django項目,這里我們需要對上一個命令進(jìn)行修改,改為:uwsgi --http :8000 --module blog.wsgi

第四步:引入nginx

1、安裝啟動nginx

為了避免在輸入ip時,不輸入端口號也能正常使用,我們引入輕量級的nginx,這里我們用命令行安裝并且啟動nginx

安裝:sudo apt install nginx

啟動:sudo service nginx start

2、寫入conf配置文件

輸入命令:sudo nano /etc/nginx/sites-available/blog_nginx.conf

新建一個conf文件,并且寫入以下內(nèi)容,將里面涉及路徑的地方全部改為你自己項目的路徑:

upstream django {
    # server unix:///home/python/myblog/blog/blog.sock; # 這里的路徑改為你自己項目路徑
    server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
server {
    listen      8000;
    server_name 192.168.217.133; # 將這里的ip地址改為你自己的虛擬機(jī)或者服務(wù)器地址
    charset     utf-8;
    client_max_body_size 75M;   # adjust to taste
    location /media  {
        alias /home/python/myblog/blog/media;  # your Django project's media files - amend as required
    }
    location /static {
        alias /home/python/myblog/blog/static; # your Django project's static files - amend as required
    }
    location / {
        uwsgi_pass  django;
        include     /home/python/myblog/blog/uwsgi_params; # the uwsgi_params file you installed
    }
}

創(chuàng)建好文件之后,我們需要對該文件創(chuàng)建一個軟鏈接,需要輸入以下命令:

sudo ln -s /etc/nginx/sites-available/blog_nginx.conf /etc/nginx/sites-enabled

完成之后我們可以通過ll /etc/nginx/sites-enabled/這個命令來查看一下,是否設(shè)置正確,參考下圖

3、創(chuàng)建uwsgi_params文件和靜態(tài)文件夾配置

1)、uwsgi_params

這里我們需要創(chuàng)建一個uwsgi_params文件,創(chuàng)建命令為:sudo nano uwsgi_params

并且將下面內(nèi)容一字不差的寫入到uwsgi_params文件中保存并退出

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;
uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;
uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

文件保存之后重啟一下nginx即可

2)、創(chuàng)建靜態(tài)文件夾

打開django項目的settings.py文件,添加靜態(tài)文件的路徑,如下圖: 

然后保存退出并復(fù)制映射靜態(tài)文件,命令為:python manage.py collectstatic

創(chuàng)建media文件夾:mkdir  media

最后輸入命令查看靜態(tài)文件夾是否配置正確:

第五步:建立uwsgi和nginx的管道通信

在uwsgi 中將http通信改為socket通信,修改命令為:uwsgi --socket :8001 --wsgi-file test.py

此時進(jìn)入阻塞,在瀏覽器中輸入IP地址:192.168.217.133:8000,發(fā)現(xiàn)可以打開,顯示hello world成功。說明uesgi和nginx通信正常

進(jìn)入nginx配置文件中:sudo nano /etc/nginx/sites-available/blog_nginx.conf

將文件中下面兩行中的第二行注釋掉,開啟第一行,但是路徑一定要正確,改使用管道通信

    server unix:///home/python/myblog/blog.sock; # for a file socket

    # server 127.0.0.1:8001; # for a web port socket (we'll use this first)

保存退出,重啟nginx:sudo service nginx restart

將uwsgi參數(shù)套節(jié)字改為blog.sock

uwsgi --socket blog.sock --wsgi-file test.py

回到瀏覽器輸入:192.168.217.133:8000得到502:如圖

 我們查看一下錯誤日志,發(fā)現(xiàn)是因為權(quán)限問題,解決辦法,在命令行后面加入--chmod=666

uwsgi --socket blog.sock --wsgi-file test.py --chmod=666

運行之后發(fā)現(xiàn)沒有問題,并且正常顯示Hello World界面。

現(xiàn)在我們運行django項目,命令為:uwsgi --socket blog.sock --module blog.wsgi --chmod=666

刷新192.168.217.133:8000得到django的基礎(chǔ)頁面。

目前可以說明nginx和uwsgi管道通信正常。

第六步:將項目改為后臺運行

創(chuàng)建一個uwsgi的配置文件:sudo nano blog_uwsgi.ini

寫入一下內(nèi)容,將其中的路徑改為自己的項目路徑

# mysite_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/python/myblog/blog
# Django's wsgi file
module = blog.wsgi
# the virtualenv (full path)
home = /home/python/myblog
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = /home/python/myblog/blog/mysite.sock
# ... with appropriate permissions - may be needed
chmod-socket = 664
# clear environment on exit
vacuum = true
# daemonize uwsgi and write messages into given log
daemonize = /home/python/myblog/blog/uwsgi.log

保存退出并且啟動配置文件,命令為:uwsgi --ini blog_uwsgi.ini

我們可以查看一下后臺進(jìn)程,是否正常啟動,輸入:ps aux

最后回到nginx配置文件中,將監(jiān)聽端口改為80,重啟nginx即可。在瀏覽器中輸192.168.217.133得到django頁面結(jié)果,表示項目運行正常。

總結(jié)

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

相關(guān)文章

  • Python的Django框架使用入門指引

    Python的Django框架使用入門指引

    這篇文章主要介紹了Python的Django框架使用入門指引,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python hashlib加密模塊常用方法解析

    Python hashlib加密模塊常用方法解析

    這篇文章主要介紹了Python hashlib加密模塊常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 使用python實現(xiàn)kNN分類算法

    使用python實現(xiàn)kNN分類算法

    這篇文章主要為大家詳細(xì)介紹了使用python實現(xiàn)kNN分類算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python用pd.read_csv()方法來讀取csv文件的實現(xiàn)

    python用pd.read_csv()方法來讀取csv文件的實現(xiàn)

    本文主要介紹了python用pd.read_csv()方法來讀取csv文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • PyQt5 實現(xiàn)字體大小自適應(yīng)分辨率的方法

    PyQt5 實現(xiàn)字體大小自適應(yīng)分辨率的方法

    今天小編就為大家分享一篇PyQt5 實現(xiàn)字體大小自適應(yīng)分辨率的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程

    在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程

    這篇文章主要介紹了在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • python使用rabbitmq實現(xiàn)網(wǎng)絡(luò)爬蟲示例

    python使用rabbitmq實現(xiàn)網(wǎng)絡(luò)爬蟲示例

    這篇文章主要介紹了python使用RabbitMQ實現(xiàn)網(wǎng)絡(luò)爬蟲的示例,需要的朋友可以參考下
    2014-02-02
  • 利用Python 制作二維碼

    利用Python 制作二維碼

    這篇文章主要介紹的是如何利用Python 制作二維碼,文章從介紹python 二維碼制作的第三方庫QRCode 和MyQR展開話題,需要的小伙伴可以參考一下文章的具體內(nèi)容
    2021-09-09
  • 基于Python實現(xiàn)實時監(jiān)控CPU使用率

    基于Python實現(xiàn)實時監(jiān)控CPU使用率

    這篇文章主要為大家介紹了一款手寫編程代碼的小腳本,能夠輕松在界面上展示:利用Python實時監(jiān)控CPU使用率,隨時展現(xiàn)。也無需下載管理軟件,感興趣的可以了解一下
    2022-04-04
  • python開發(fā)App基礎(chǔ)操作API使用示例過程

    python開發(fā)App基礎(chǔ)操作API使用示例過程

    這篇文章主要為大家介紹了python開發(fā)App基礎(chǔ)操作API使用的示例過程有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10

最新評論