django+vue+uwsgi+nginx部署

django+vue+uwsgi+nginx部署

安装python

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz 下载安装包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc   安装依赖包 
tar -Jxvf Python-3.6.2.tar.xz  解压tar包
cd Python-3.6.1 切换到Python路径下
./configure prefix=/usr/local/python3 进行安装配置
make && make install 编译和编译安装
ln -s /usr/local/python3/bin/python3  /usr/bin/python3 对python3 进行一个软连接
ln -s  /usr/local/python3/bin/pip3  /usr/bin/pip3 对pip3 命令进行一个软连接
pip3 install --upgrade pip
pip3 install sqlalchemy  配置完成,顺带测试
pip3 install pymysql

安装node.js

# 下载源码:
$ wget https://nodejs.org/download/release/v6.0.0/node-v6.0.0.tar.gz
$ tar -zvxf node-v6.0.0.tar.gz
$ cd node-v6.0.0
$ ./configure

$ make
#NOTE: 这个比较费时间。 

$ make install 

$ node --version
v6.0.0

安装vue

npm install vue-cli
netstat** 查看运行的服务**
netstat -nptl 
fuser** 杀死8000端口号的进程**
fuser -k 8000/tcp

部署django环境,导出package.txt

pip3 install -r package.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
  • package.txt内容
amqp==1.4.9
anyjson==0.3.3
Babel==2.7.0
billiard==3.3.0.23
celery==3.1.26.post2
certifi==2018.8.24
chardet==3.0.4
Django==2.1.8
django-celery==3.2.2
django-ckeditor==5.7.1
django-filter==2.2.0
django-js-asset==1.2.2
django-redis==4.10.0
djangorestframework==3.10.2
flower==0.9.3
idna==2.8
kombu==3.0.37
Markdown==3.1.1
Pillow==6.1.0
pycryptodome==3.8.2
pycryptodomex==3.7.2
PyMySQL==0.9.3
python-alipay-sdk==1.10.1
pytz==2019.1
redis==2.10.6
requests==2.22.0
sqlparse==0.3.0
tornado==5.1.1
urllib3==1.25.3
wincertstore==0.2
datetime
rsa
django-cors-headers
  • 运行服务
在settings.py中需要
将name参数用str()进行转换
DATABASES = {    
    'default': {       
        'ENGINE': 'django.db.backends.sqlite3',        
        'NAME': str(BASE_DIR / 'db.sqlite3'),    
        }
    }
    
python3 manage.py runserver

配置安装uwsgi

pip3 install uwsgi
  • 配置软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
  • 使用uwsgi脚本运行django项目。创建脚本script目录
mkdir script
cd script

目录

dj** ****//**django项目

db.sqlite3** //数据库文件**

FinanceSdkDemo** **** ****//**c++目录

myapp** **** ****//**django项目app

script** ****//**uwsgi脚本目录

vue** ****//**vue目录

wfastcgi.py** **//部署IIS需要的py文件

dist** **//打包vue的静态文件目录

manage.py

myproject

static** **//真正用到的静态文件目录

web.config

  • 写入脚本
vim uwsgi.ini
内容:
[uwsgi]
chdir=/root/桌面/dj           #项目目录
module=myproject.wsgi           #指定项目的application
socket=/root/桌面/dj/script/uwsgi.sock        #指定sock的文件路径
workers=5                       #进程个数
pidfile=/root/桌面/dj/script/uwsgi.pid        #指定pid的文件路径
http=192.168.0.69:8099          #指定IP端口
static-map=/static=/root/桌面/dj/static        #指定静态文件
uid=root        #用户
gid=root        #组
master=true     #启用主进程
vacuum=true     #自动移除unix Socket和pid文件当服务停止的时候
enable-threads=true     #启用线程
thunder-lock=true       #序列化接受的内容,如果可能的话
harakiri=30             #设置自中断时间
post-buffering=4096     #设置缓冲
daemonize=/root/桌面/dj/script/uwsgi.log  #设置日志目录
  • 启动脚本
uwsgi --ini uwsgi.ini
  • 启动完成
[root@sll script]# ls
uwsgi.ini  uwsgi.log  uwsgi.pid  uwsgi.sock

配置安装nginx

  • 下载nginx
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
  • 解压包
tar -zxvf nginx-1.12.2.tar.gz
  • 编译安装
cd nginx-1.12.2
./configure
make && make install
  • 创建软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
  • 启动nginx(默认端口80,如果80端口被占用需要先停止80端口)
fuser -k 80/tcp     #停止80端口的使用
nginx               #启动nginx
  • 备份配置文件,【防止错误先备份一份】
[root@sll nginx-1.12.2]# cd conf
[root@sll conf]# cp nginx.conf nginx.conf.bak
  • 创建Error_log路径(/var/log/nginx)
mkdir nginx
cd nginx
touch error.log
  • 修改配置文件
vim nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;

    #这里规定了日志的格式,默认是注释的,我们需要解开注释
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;     #监听端口
        server_name  localhost;     #服务名称

        charset utf-8;      #服务器编码

        access_log  /var/log/nginx/access.log  main;         #访问日志路径

        gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; #压缩格式

        error_log /var/log/nginx/error.log error;       #错误日志注意

        location / {
                include uwsgi_params;       #nginx加载uwsgi模块
                uwsgi_connect_timeout 30;       #连键超时时间
                uwsgi_pass unix:/root/桌面/dj/script/uwsgi.sock;       #nginx对应的uwsgi socket文件
        }

        location = /static/ {
            alias /root/桌面/dj/static;  #静态文件路径
            index index.html index.htm;  #首页
            }

         

  • 杀掉进程,重新启动
pkill -9 uwsgi
pkill -9 nginx
uwsgi --ini uwsgi.ini   #必须在本文件路径下
nginx
上一篇:openssh 8 源码打包成rpm


下一篇:centos6和7运行级别和自启动管理