Vue+Django項目部署

 本地項目配置

1 複製 luffy/settings/dev.py爲prop.py

修改luffy/settings/prop.py中如下幾項css

(1) allow_hosts

ALLOWED_HOSTS = [
  'api.youdomain.com',
]

(2) 跨域白名單

CORS_ORIGIN_WHITELIST = (
  # 前端域名
  "www.youdomain.com", 
  # 後端api接口域名
  "api.youdomain.com"
)

(3) 支付寶電腦網站支付配置信息

ALIPAY_APPID = "xxxxxxx"
APP_NOTIFY_URL = None
ALIPAY_DEBUG = True
# APIPAY_GATEWAY="https://openapi.alipay.com/gateway.do"
APIPAY_GATEWAY = "https://openapi.alipaydev.com/gateway.do"
ALIPAY_RETURN_URL = "http://www.youdomain.com/success"
ALIPAY_NOTIFY_URL = "http://api.youdomain.com:8000/payments/success"

2 修改luffy/wsgi.py文件

第14行 html

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")

3 修改manage.py文件

不改也能夠,爲了在服務器測試方便一點
第6行 前端

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")

4 導出pip安裝的包列表

pip freeze > docs/requirements.txt

5 收集靜態文件

python manage.py collectstatic

6 提交併推送

git add .
git commit -m "項目完成"
git push -u origin master

7 前端配置修改 src/settings.js

設置後端服務器域名和端口python

Host:"http://api.youdomain.com:80",

8 構建

npm run build

9 提交併推送

git add .
git commit -m "項目完成"
git push -u origin master

服務器上配置

1 安裝所需軟件

yum install python36-pip.noarch python36.x86_64 python36-devel.x86_64 nginx git gcc -y
pip3 install virtualenv -i https://pypi.douban.com/simple

注意:uwsig 最好使用pip方式安裝mysql

pip3 install uwsgi -i https://pypi.douban.com/simple

2 mysql數據庫相關配置

(1)安裝mysql

yum install mysql-server -y

或者使用容器
設置密碼以及初始化配置請自行解決 nginx

(2) 啓動數據庫

systemctl start mysqld

(3)新建數據庫luffy

create database luffy;

(4) 導入數據

mysql -uroot -pmysql luffy < luffy.sql
也可配置好django後生 python manage.py makemigrations 成數據庫

3 redis 安裝與配置

可使用 yum 安裝並啓動 ,簡單粗暴!
爲了使用最新版,我採用解壓安裝
那種方式你喜歡就好!git

(1) 下載

cd /opt/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

(2) 解壓並安裝

tar -xf redis-5.0.5.tar.gz
cd /opt/redis-5.0.5
make && make install

(3)修改配置文件

vim redis.conf
69行 bind 127.0.0.1
改成 bind 0.0.0.0

(4)啓動Redis,並放置在後臺

nohup redis-server redis.conf &

4 拉取前端項目

cd /opt/
git clone https://gitee.com/SunHarvey/luffyweb.git

前端項目路徑爲 /opt/luffyweb/
只有 /opt/luffyweb/dist/ 文件有用
dist用做前端根目錄,其餘的不要亦可!github

5 建立虛擬環境

(1)建立虛擬環境

cd /opt/
virtualenv luffy 
即就是虛擬環境路徑爲 /opt/luffy/
cd /opt/luffy/

(2)激活虛擬環境

source /opt/luffy/bin/activate

(3)拉取後端項目

git clone https://gitee.com/SunHarvey/luffy.git
注:項目根路徑爲 /opt/luffy/luffy/
cd luffy
能夠看到如下文件
docs luffy manage.py scripts static

(4)pip安裝所需包

個人 django 使用的是2.0版本,不須要由於 pymysql 報錯該源碼
刪除 luffy/docs/requirements.txt中 xadmin中的那行web

pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2
pip3 instal -r /opt/luffy/luffy/docs/requirements.txt

(5)用 runserver 啓動django項目看看是否正常

記得啓動MySQL數據庫和redisredis

python manage.py runserver

沒有報錯的話繼續,報錯了就根據提示排除吧

6 uwsgi配置

(1) uwsgi.ini 配置內容以下

vim /opt/luffy/luffy/uwsgi.ini
[uwsgi]
# 設置uwsgi 啓動用戶,不設置也可,會有警告,也能夠設置爲當前登陸的用戶
uid = nginx
gid = nginx
#使用nginx鏈接時使用,Django程序所在服務器地址
socket=127.0.0.1:8000
#直接作web服務器使用,Django程序所在服務器地址
#http=0.0.0.0:8080
#項目目錄
chdir=/opt/luffy/luffy
#項目中wsgi.py文件的目錄,相對於項目目錄
wsgi-file=luffy/wsgi.py
# 進程數
processes=1
# 線程數
threads=2
# uwsgi服務器的角色
master=True
# 存放進程編號的文件
pidfile=uwsgi.pid
# 日誌文件,由於uwsgi能夠脫離終端在後臺運行,日誌看不見。咱們之前的runserver是依賴終端的
daemonize=uwsgi.log
# 指定依賴的虛擬環境
virtualenv=/opt/luffy/
# clear environment on exit #退出時清除環境 vacuum = true

(2) 修改文件全部者, 若是用root啓動可忽略此步驟

chown -R nginx.nginx /opt/luffy/luffy/

也能夠把nginx換成當前登陸用戶的用戶名,其它用戶也能夠。

(3) 啓動uwsgi , 記得啓動MySQL數據庫和redis

uwsgi --ini /opt/luffy/luffy/uwsgi.ini

7 nginx配置

(1) 建立配置文件

vim /etc/nginx/conf.d/your.conf 
# 設置後端uwsgi服務器,可寫多個用做負載均衡
upstream luffy {
  server 127.0.0.1:8000;
}
# 後端 api服務器配置
server {
  listen 80;
  server_name api.youdomain.com;
  location / {
    include uwsgi_params;
    uwsgi_pass luffy;
  }
  # 加載css、js文件
  location ~ .*\.(css|js)$ {
    root /opt/luffy/luffy/;
    }
}

# 前端頁面服務器配置
server {
  listen 80;
  # 不要懷疑,你沒有看錯!nginx的80端口能夠啓動 n 個域名!
  server_name youdomain.com www.youdomain.com;
  location / {
    # /opt/luffyweb/dist/ 爲npm run build生成的文件夾
    root /opt/luffyweb/dist/;
    index index.html;
    try_files $uri $uri /index.html;
  }
}

這是最基本配置,其它優化配置就再也不贅述!

(2)檢查nginx配置文件語法

nginx -t

(3) 啓動nginx

systemctl start nginx
相關文章
相關標籤/搜索