詳細內容以下html
#!/usr/bin/poython3.6 #conding:utf-8 from distutils.core import setup import glob setup(name='blog', version='1.0', description='demo blog', author='zhang', author_email='18829272841@163.com', url='https://www.zhang.com', packages=['blog','post','user'], # 打包py文件 py_modules=['manage'], #能夠不打包manage.py文件 data_files=glob.glob('templates/*.html') + ['requirements','manage.py'], # 打包其餘文件 )
pip freeze > requirements # 此處的文件名須要和上面的須要打包中的其餘文件的文件名相同
查看結果以下前端
python setup.py sdist --formats=gztar #此處代表打包文件爲tar.gz
以下 python
mkdir blog01 cd blog01/ pyenv virtualenv 3.5.3 blog01 pyenv local blog01
結果以下 mysql
yum -y install mysql-devel python-devel
複製以前的包至此目錄下並解壓重命名react
安裝相關項目依賴 webpack
cd blog/ pip install --upgrade pip # 升級安裝包 pip install -r requirements
查看安裝結果 nginx
啓動服務 web
python manage.py runserver 0.0.0.0:80
結果以下 sql
測試以下 npm
web server gateway interface,是python中定義的Web Server 與應用程序的接口定義
應用程序有WSGI的django負責,而WSGI的server 可經過UWSGI 來負責
UWSGI 是一個C語言項目,提供一個WEB服務器,其支持WSGI協議,能夠和python的WSGI 應用程序通訊。
官方文檔
https://uwsgi-docs.readthedocs.io/en/latest/
UWSGI 能夠直接啓動HTTP服務,接受HTTP請求。並調用django應用
pip install uwsgi
查看安裝是否成功
根目錄以下
在django項目根目錄中運行以下代碼
uwsgi --http :8000 --wsgi-file blog/wsgi.py --stats :8001
測試以下
上述代表運行正常
基本環境以下
相關配置以下
修改配置文件/etc/nginx/conf.d/default.conf 添加以下內容
location ^~ /api/ { rewrite ^/api(/.*) $1 break; #重寫URL,去掉前面的api,$1表示去掉api後對應的url proxy_pass http://192.168.1.200:8000; }
生效配置以下
systemctl reload nginx
測試以下
目前的nginx和UWSGI 直接使用的是HTTP 通訊,效率低下,需修改成uwsgi 通訊
1 本次項目的根目錄是 /root/blog01/blog,所以blog.ini放入此目錄下 ,相關內容以下
[uwsgi] socket=127.0.0.1:9000 chdir=/root/blog01/blog wsgi-file=blog/wsgi.py
啓動服務
uwsgi blog.ini
以下
location ^~ /api/ { rewrite ^/api(/.*) $1 break; #proxy_pass http://192.168.1.200:8000; include uwsgi_params; uwsgi_pass 127.0.0.1:9000; }
生效配置並重載
systemctl reload nginx
測試以下
其做用是遞歸刪除文件,至關於 rm -rf
npm install rimraf --save-dev
在package.json中替換,結果以下
上述的build的做用是在調用build時執行的是build對應的命令
修改 webpack.config.prod.js 以下
npm run build
打包上傳
修改nginx配置以下
重載配置以下
訪問以下
博客平臺基本部署完成