Django中部署配置總結


當項目開發完成后,需要將項目代碼放到服務器上,這個服務器擁有固定的IP,再通過域名綁定,就可以供其它人瀏覽,對於python web開發,可以使用wsgi、apache服務器,此處以wsgi為例進行布署。

服務器首先是物理上的一台性能高、線路全、運行穩定的機器,分為私有服務器、公有服務器。

  • 私有服務器:公司自己購買、自己維護,只布署自己的應用,可供公司內部或外網訪問,成本高,需要專業人員維護,適合大公司使用。
  • 公有服務器:集成好運營環境,銷售空間或主機,供其布署自己的應用,適合初創公司使用,成本低。

常用的公有服務器,如阿里雲、青雲等,可按流量收費或按時間收費。服務器還需要安裝服務器軟件,此處需要uWSGI、Nginx。

html文件當中有靜態文件時,項目部署到服務器的時候,將debug模式關閉后靜態文件則找不到圖片等

 

搭建服務器的虛擬環境

1.在本機進入虛擬環境,執行命令導出當前需要的所有包。

pip freeze > plist.txt

2.通過ftp軟件將項目代碼和plist.txt文件上傳到服務器。

3.創建虛擬環境,在虛擬環境上安裝包。

mkvirtualenv 虛擬環境名稱
pip install -r plist.txt

uWSGI

概述

uWSGI實現了WSGI的所有接口,是一個快速、自我修復、開發人員和系統管理員友好的服務器。
uWSGI代碼完全用C編寫,效率高、性能穩定。

1)安裝uWSGI。

pip install uwsgi

2)配置uWSGI,在項目目錄下創建uwsgi.ini文件,配置如下:

[uwsgi]
# 使用nginx連接時使用
#socket=127.0.0.1:8080
#直接做web服務器使用 服務器的ip和監聽的端口號
http=127.0.0.1:8080
#項目目錄 制定項目目錄
chdir=/home/python/Desktop/py3test/day06
#項目中day06文件夾當中wsgi.py文件的目錄,相對於項目目錄
wsgi-file=day06/wsgi.py
# 制定進程數目
processes=4
# 制定線程數目
threads=2
# 主進程
master=True
# 將主進程的id寫到該文件里面
pidfile=uwsgi.pid
# 后台輸出 log日志
daemonize=uwsgi.log日志
View Code

3)啟動。

uwsgi --ini uwsgi.ini

4)查看。

ps ajx|grep uwsgi
此時項目已經部署到了uwsgi上了,可以通過瀏覽器訪問項目中的動態文件了,但是此時靜態文件訪問不了需要通過nginx

5)停止。

uwsgi --stop uwsgi.pid

6)在瀏覽器中輸入如下網址:

http://127.0.0.1:8080/

Nginx

使用nginx的作用主要包括負載均衡、反向代理。

查看官方網站http://nginx.org/

1)下載nginx后放到桌面上,解壓縮。

tar zxvf nginx-1.6.3.tar.gz

2)進入nginx-1.6.3目錄,依次執行以下命令進行安裝。

./configure
make
sudo make install

3)默認安裝到/usr/local/nginx/目錄,進入此目錄。

cd /usr/local/nginx/

4)啟動。

sudo sbin/nginx

5)查看進程。

ps ajx|grep nginx

6)打開瀏覽器,輸入如下網址:

http://127.0.0.1/

7)停止。

sudo sbin/nginx -s stop

指向uwsgi項目

1)打開/usr/local/conf/nginx.conf文件。

sudo gedit conf/nginx.conf

2)在server節點下添加新的location項,指向uwsgi的ip與端口。

        location / {
            #將所有的參數轉到uwsgi下
            include uwsgi_params;
            #uwsgi的ip與端口
            uwsgi_pass 127.0.0.1:8080;
        }

注:操作第二部的時候 將系統自帶的注釋掉
此刻的靜態文件還是不能訪問 需要將靜態文件導入nginx

配置靜態文件

所有的靜態文件都會由nginx處理,不會將請求轉到uwsgi。

1)打開conf/nginx.conf文件。

sudo gedit conf/nginx.conf

2)在server節點下添加新的location項,用於處理靜態文件。

location /static {
  alias /var/www/test6/static/;
}

3)在服務器上創建如下目錄。

sudo mkdir -vp /var/www/test6/static/

4)修改目錄權限。

sudo chmod 777 /var/www/test6/static/

5)修改test6/settings.py文件。

STATIC_ROOT='/var/www/test6/static/'
STATIC_URL='/static/'

6)收集所有靜態文件到static_root指定目錄。

python manage.py collectstatic

7)刷新瀏覽器即可搜索到靜態文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM