国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 操作系統 > 正文

nginx + uwsgi + django部署

2024-06-28 16:04:36
字體:
來源:轉載
供稿:網友

virtualenv 配置虛擬環境

檢測是否已安裝virtualenv

virtualenv --version

若沒有顯示版本號則表示沒有安裝virtualenv 安裝virtualenv

pip install virtualenv

創建虛擬環境 路徑可自選,也可放置項目目錄下 venv為虛擬環境名,可自定義

virtualenv venv

進入虛擬環境(需在venv當前目錄下操作)

source /venv/bin/activate# 退出虛擬環境命令deactivate

安裝項目相關依賴 (此操作需要提前提前生成requirements.txt依賴文件) 插入簡單說下django依賴文件如何生成

生成依賴文件pip freeze > requirements.txt

安裝依賴

pip install -r requirements.txt

如何查看依賴列表

pip list

至于為什么要用虛擬環境來部署,其中的原因若有疑問就自行谷歌吧。不僅僅是部署,每新建一個項目,都建議使用虛擬環境,好處大大的。

推薦一個很不錯的擴展庫virtualenvwrapper,挺方便,喜歡的小伙伴就趕緊上手吧。


下面就要開始正式的部署了,這篇教程以Ubuntu為例 整個部署結構如下: the web client <-> the web server(nginx) <-> the socket <-> uwsgi <-> Django nginx做反向代理處理靜態文件,減輕服務器負載 同時也可以配置多臺服務器做負載均衡(此篇博客不超扯) uwsgi處理后臺請求 ps:后面寫些系列博客介紹下uwsgi和nginx等部署所需 ps:畢竟光講怎么用,不說原理真是耍流氓

配置uwsgi

虛擬環境下安裝uwsgi

pip install uwsgi# 若安裝失敗,可能是python依賴庫沒有安裝# 執行以下命令apt-get install python-dev

編寫測試腳本 在項目目錄下添加test.py腳本,添加如下內容

# test.pydef application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] # python3 #return ["Hello World"] # python2

用test.py測試uwsgi

uwsgi --http :8000 --wsgi-file test.py# 若跑不起來,可能需要添加參數# 具體原因這里不深究,歷史遺留# 感興趣的同學可自行谷歌uwsgi --plugin python,http --http :8000 --wsgi-file test.py

瀏覽器訪問localhost:8000查看頁面是否顯示hello world 若正常顯示,則說明如下環節正常拉通 the web client <-> uWSGI <-> Python 接著先測試以下django項目自身能否跑通

python manage.py runserver 0.0.0.0:8000

確認沒問題后,用uwsgi拉通django

uwsgi --http :8000 --module mysite.wsgi

此處wsgi命名方式:項目名.wsgi 此wsgi文件可在項目目錄中得主目錄下找到 確認正常運行,說明如下環節正常拉通

the web client <-> uWSGI <-> Django

配置nginx

安裝nginx

apt-get install nginx

測試nginx能否正常運行,啟動nginx

/etc/init.d/nginx start# 或者service nginx start

訪問瀏覽器80端口 打開localhost:80 若顯示Welcome to nginx!則說明nginx正常運行 說明如下環節正常拉通

the web client <-> the web server

nginx默認占用80端口 同時訪問公網ip,默認訪問得端口也是80 即可以直接訪問localhost,不需要加80端口號 ps:贈送一些常用nginx命令

# 重啟nginxservice nginx restart# 查看nginx運行狀態service nginx status# 停止nginx服務service nginx stop

編寫nginx配置文件(ubuntu下,centos路徑則不同) nginx相關配置存放在/etc/nginx 先將uwsgi_params文件復制到項目目錄下 uwsgi_params可在/etc/nginx下找到

cp /etc/nginx/uwsgi_params /path/to/your/PRoject

然后在項目目錄下新建mysite_nginx.conf 配置文件名,自己記得住就好,保證可讀性 填入以下內容

# myproject_nginx.conf# the upstream component nginx needs to connect toupstream django { # server unix:///path/to/your/mysite/mysite.sock; # for a file socket server 127.0.0.1:8001; # for a web port socket (we'll use this first)}# configuration of the serverserver { # the port your site will be served on listen 8000; # the domain name it will serve for server_name .example.com; # substitute your machine's IP address or FQDN charset utf-8; # max upload size client_max_body_size 75M; # adjust to taste # Django media location /media { alias /path/to/your/mysite/media; # your Django project's media files - amend as required } location /static { alias /path/to/your/mysite/static; # your Django project's static files - amend as required } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass django; include /path/to/your/mysite/uwsgi_params; # the uwsgi_params file you installed }}

寫好配置文件后,需要將此配置文件軟鏈接至nginx配置文件目錄下 配置文件則存放在/etc/nginx/sites-enabled

ln -s /path/to/your/mysite_nginx.conf /etc/nginx/sites-enabled/# 舉例conf文件路徑為/home/test/mysite/mysite_nginx.conf# 命令就這么寫ln -s /home/test/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/

接下來拉通部署下靜態文件 在django項目得的setting文件中,添加下面一行內容:

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

運行python命令

python manage.py collectstatic

此命令會將項目中得所有靜態文件全部匯總到static目錄下 原因就是為了方便給nginx做反向代理時,可以快速得找到所請求得靜態文件 現在可以測試以下nginx是否能夠正常訪問靜態文件 重啟以下nginx

service nginx restart

任意在瀏覽器訪問一個media里面得圖片文件(沒圖片,就自己加一個) 比如訪問localhost:8000/media/test.png 若是正常顯示,那么接下來得路就好走多了。 然而,意外往往時會發生的,訪問不到的就根據報錯來定位問題 同時借助nginx日志,來查看問題的原因 nginx日志路徑/var/log/nginx/error.log 一般情況下,由于權限問題導致訪問失敗的可能性最大 這時候就需要修改項目所在目錄的權限 所以項目部署的時候不要把代碼放到/root等權限敏感的目錄下 ok,往下走 這時候就需要拉通nginx和uwsgi了 接著用test.py測試一把

uwsgi --socket :8001 --wsgi-file test.py

訪問8000端口,沒有問題的話,說明以下環節也拉通了 the web client <-> the web server <-> the socket <-> uWSGI <-> Python 這時候舉例萬里長征真的就幾步路了 我們之前nginx使用的時tcp sokect轉發請求,也就是使用端口轉發 現在,換成unix socket轉發 unix socket相對tcp socket速度更快,節省端口資源 然而要是做負載均衡的話,就需要利用不同的端口轉發請求至處理服務器了 不多說,修改nginx配置文件

server unix:///path/to/your/mysite/mysite.sock; # for a file socket# server 127.0.0.1:8001; # for a web port socket (we'll use this first)

然后重啟nginx 啟動uwsgi

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

訪問8000端口,看到hello world,那就是勝利的曙光 然而這里往往是會保權限錯誤所以,出現權限問題,就試試下面兩個命令 其實就加個兩個權限參數

uwsgi --socket mysite.sock --wsgi-file test.py --chmod-socket=666# 或者uwsgi --socket mysite.sock --wsgi-file test.py --chmod-socket=664

搞定這個問題后,就可以拉通整個部署結構了(這個權限最保險^_^)

uwsgi --socket mysite.sock --module mysite.wsgi --chmod-socket=666

好了,其實整個部署過程到這就可以結束了 但是在命令中加各種參數是不太好的一個編碼習慣 還是寫到配置文件里面去 在項目目錄下新建mysite_uwsgi.ini

# mysite_uwsgi.ini file[uwsgi]# Django-related settings# the base directory (full path)chdir = /path/to/your/project# Django's wsgi filemodule = project.wsgi# the virtualenv (full path)home = /path/to/virtualenv# process-related settings# mastermaster = true# maximum number of worker processes# 進程數設置與cpu核數相同,保證并行性能processes = 10# the socket (use the full path to be safesocket = /path/to/your/project/mysite.sock# ... with appropriate permissions - may be needed# chmod-socket = 664# clear environment on exitvacuum = true

然后用簡單的uwsgi命令,就能完成部署了

uwsgi --ini mysite_uwsgi.ini

ps:附贈一些相關項目狀態查看命令

# 查看某端口占用情況(80端口為例)lsof -i:80# 查看uwsgi或者nginx進程ps -ef | grep uwsgi# 停止uwsgi主進程pkill uwsgi# 殺掉某進程只需要知道pid既可kill pid
上一篇:硬盤分區

下一篇:nginx 安裝ssl證書

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
最近中文av字幕在线中文| 在线观看的av| av在线1区2区| 尤物在线精品视频| 国产激情视频网址| 精品美女在线观看视频在线观看| 国产www视频在线观看| 国产乱码在线| 黄网址在线播放免费| 国产在线你懂得| 成av人免费青青久| 狠狠操狠狠色| 亚洲高清在线免费| 国产欧美日韩专区| 二区三区中文字幕| 欧美性猛交p30| 最好看更新中文字幕| 99视频在线观看地址| 国产区高清在线| 中文字幕第一页在线| av在线二区| 高清视频一区二区三区四区| 任你操视频在线观看| av超碰在线| 中文字幕国产视频| 99福利在线| 日本综合一区二区三区| 四虎成人免费观看在线网址| 国产裸舞福利在线视频合集| 18av在线视频| 超碰在线网址| 免费国产在线视频| 国产黄色片大全| 国产女人伦码一区二区三区不卡| 国产精品免费视频二三区| 国产乱码在线| 国产精品69一区二区三区| 国产69精品久久app免费版 | 国产高清自拍视频在线观看| 2021av天天| √天堂中文在线| 免费精品国产自产拍在| 在线国产1区| 国产在线免费观看| 69久久精品| 国产九色视频| 国产二区视频| 久热精品免费视频| 亚洲视频手机在线观看| 国产无遮挡又黄又爽免费软件| 免费av在线| 午夜免费福利在线观看| 国产黄色av免费看| 国产不卡精品一区二区三区| 日韩精品免费一区二区| 2021av天天| 精品黄色免费中文电影在线播放| 精品美女在线观看视频在线观看| 99在线视频影院| 国产女王在线**视频 | 九九热在线免费视频| 四虎中文字幕| 国产精品久久久久久久牛牛| 国内自拍视频在线观看| 夜色资源网av在先锋网站观看| 亚洲最新永久观看在线| 天天操天天射天天插| 免费午夜一级| 国产精品视频一区二区久久| 国产福利电影在线| 国产深夜福利| 国产偷激情在线| 狠狠干婷婷色| 2019年中文字幕| 免费日本黄色| 青青国产在线| 欧美精品se| 国产youjizz在线| 国产网友自拍电影在线 | 在线观看精品视频一区二区三区| 青青草原国产在线观看| 2019年中文字幕| 国产中文字幕网| 国产对白国语对白| 国产原创在线播放| 国产亚洲精品久久久久久青梅 | 国产黄色免费电影| 国产天堂素人系列在线视频| 久艹在线视频| 国产美女性感在线观看懂色av| 国产女主播在线观看| 国产一区二区三区福利| 亚洲高清在线免费| 国产极品视频| 日本黄在线观看| 国产精品合集一区二区| 国产精品探花在线| 二人午夜免费观看在线视频| 国产一区精品| 在线亚洲精品自拍| 777电影在线观看| 精品麻豆国产| av中文资源在线| 在线中文资源天堂| 牛牛热在线视频| 97人人在线| 国产高清视频免费最新在线| 国产网红在线| 国产三级自拍| av亚洲男人天堂| 国产黄色免费| 在线播放av网站| 国产精品久久久久久久牛牛| 四虎影院成人| 亚洲欧美精选| 制服丝袜中文字幕在线观看| www在线视频| 在线看黄色av| 在线播放www| 一区免费观看| 人日人天天爽| 国产91在线视频蝌蚪| 国产精品剧情一区二区三区 | 国产乱xxⅹxx国语对白| аⅴ成人天堂中文在线| 免费看的毛片| 欧美亚洲系列| 国产成人综合亚洲欧美在| 国产精品扒开做爽爽爽的视频| 超碰在线国产| 国产不卡精品一区二区三区| 7777在线| 91免费日韩| 国产蜜臀在线| 99在线免费视频| 国产精品久久久久一区二区国产| 中文字幕av在线| 国产香蕉在线| 麻豆精品不卡国产免费看| 国产精品久久久久久福利| www久久日com| 天堂在线中文资源| 国产精品麻豆一区二区三区| 在线观看免费视频一区二区三区| 久久五月精品| 久久国产热视频| 日本卡一卡2卡3卡4精品卡网站| 中文字幕一区免费| 国内自拍视频在线看免费观看| 久久99亚洲网美利坚合众国| jizz在线视频| 国产天堂在线| 狠狠干五月天| 最新中文字幕在线视频| 天天艹天天操| 欧美日韩一区二区三区在线播放 | 美女免费视频黄| 亚洲高清在线免费| 成 人免费视频播放| av在线天天| 人xxxx性xxxxx欧美| 精品国内一区二区三区免费视频 | 最近最好的中文字幕2019免费| 中文字幕不卡免费视频| 久草在线视频网| 看成年女人免费午夜视频| 日本三级在线视频| 国产在线视频福利| 开心婷婷激情| 精品国产免费观看一区| 国产高清在线观看| 中文字幕在线免费观看| 久久国产综合视频| 免费一区二区三区视频狠狠| 日本啊v在线| 蜜桃视频中文字幕| 国产福利资源| 黄色av网址在线免费观看| 青青青手机在线视频观看| h网站免费在线观看| 中文字幕一区二区三区免费视频| 午夜在线不卡| 天堂网中文在线| 国产极品嫩模在线视频一区| 尤物网址在线观看| 国产在线观看18| 豆国产97在线|亚洲| 高清av中文在线字幕观看1| 女人色在线免费视频| 久草福利资源在线视频| 国产精品欧美韩国日本久久| 国产女主播在线| 国产高清免费av在线| 国产99re| 免费看成年人视频在线观看| 九九99精品| 在线成人综合色一区| av天天在线| www.av在线视频| 91精品国产高久久久久久五月天|