博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django+vue+nginx生产环境部署配置
阅读量:6241 次
发布时间:2019-06-22

本文共 4670 字,大约阅读时间需要 15 分钟。

部署环境:

1. linux redhat 7.1

2.python 3.6.3

3. vue

4. nginx

5. gunicorn

6. supervisord

安装:

一. 基础环境安装

1. python3.6.3安装

下载python3.6.3安装包,下载地址:https://www.python.org/downloads/release/python-363/

解压,编译安装,不多加赘述,安装成功后setuptools也会安装,pip3自行安装

2. django 环境部署

  如果是gitlab服务器,git clone项目地址到部署服务器,如果不是打包上传源项目包,解压安装依赖环境,如果服务器有连解外网pip3 install -r 依赖文件

  如果服务无外网那么在官网查找下载各个依赖包,通过setuptools安装,不赘述

3. VUE安装

  安装npm, vue,不赘述,具体安装不会查找教程

二. 其他托管服务,Nginx, gunicorn安装配置

1. gunicorn安装配置

  pip3 install gunicorn

  服务器无连接外网请在https://pypi.org/search/?q=gunicorn 源码包下载安装

   配置启动Runit --gunicorn_start.sh 

#!/bin/bashNAME="projectName"                                   # Name of the applicationDJANGODIR=/opt/projectName             # Django project directorySOCKFILE=/tmp/projectName.sock   # we will communicate using this unix socketPIDFILE=/opt/projectName/projectName.pidfileNUM_WORKERS=4                                  # How many worker processes should Gunicorn spawnDJANGO_SETTINGS_MODULE= projectName.settings.base          # Which settings file should Django useDJANGO_WSGI_MODULE=projectName.wsgi                  # WSGI module nameecho "Starting $NAME as `whoami`"# Activate the virtual environmentcd $DJANGODIR# Start your Django Unicornecho "Exec $NAME as `whoami`"exec gunicorn ${DJANGO_WSGI_MODULE}:application \  --name $NAME \  --workers $NUM_WORKERS \  --bind=unix:$SOCKFILE  --pid=$PIDFILE  --log-level=debug \  --log-file=/opt/projectName/gunicorn.log \  --access-logfile=/opt/projectName/access.log \  --worker-class=gevent \  --max-requests 500  "$@"

 增加X权限, sudo chmod +x gunicorn_start.sh 

试运行

2. supervisord服务安装配置,将gunicorn托管

下载supervisord,安装,安装成功后,echo_supervisord_conf > /etc/supervisord.conf 生成配置文件

配置文件更改:

# dbmanager.conf[program:dbmanager]command = /opt/projectName/gunicorn-start.sh                    ; Start appstdout_logfile = /var/log/supervisor/gunicorn-supervisor.log  ; Where to write log messagesredirect_stderr = trueautostart = trueautorestart = truestderr_logfile = /var/log/supervisor/gunicorn-supervisor.err.log;停止信号stopsignal=INT

3. nginx安装配置

下载nginx ,pcre:

curl -C - -O http://mirrors.sohu.com/nginx/nginx-1.13.7.tar.gzcurl -C - -O https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz

安装pcre

tar xf pcre-8.41.tar.gz -C /usr/local/src/# 编译 ./configure --prefix=/opt/pcremake && make install

安装nginx

tar xf nginx-1.13.7.tar.gz -C /usr/local/src/# 编译./configure --prefix=/opt/nginx --with-pcre --with-http_ssl_module --user=nginx --group=nginx --with-threads --with-stream --with-stream_ssl_module --with-http_v2_module --with-http_gunzip_modulemake && make install

修改配置文件

vi /opt/nginx/conf/nginx.conf

worker_processes  4;error_log  logs/error.log;error_log  logs/error.log  notice;error_log  logs/error.log  info;pid        logs/nginx.pid;events {    accept_mutex on;    multi_accept on;    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;        access_log /var/log/nginx/access.log combined;        upstream app_server {    # for UNIX domain socket setups    server unix:/tmp/gunicorn.sock fail_timeout=0;  }      server {        charset utf-8;        listen       9000;        gzip on;        gzip_min_length  1k;        gzip_buffers     4 16k;        gzip_http_version 1.0;        gzip_comp_level 2;        gzip_types  text/plain application/x-javascript text/css application/xml;        gzip_vary on;        client_max_body_size 300m;        server_name  localhost;        # Add index.php to the list if you are using PHP        index index.html index.htm index.nginx-debian.html;        # 后端接口转发    # /apiv1 对应后台接口URL        location /apiv1 {                proxy_pass http://unix:/tmp/projectName.sock;                proxy_set_header Host $host;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                proxy_read_timeout 300;                proxy_connect_timeout 300;                proxy_redirect off;        }        #  前端vue转发        location / {                try_files $uri $uri/ @router;                index index.html;        }        root /opt/projectName/front/dist; #vue打包的文件目录        #index login.html;        location @router {                rewrite ^.*$ /index.html last;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {             root   html;         }    }}

测试配置文件:

/opt/nginx/sbin/nginx -t

无问题,启动服务: /opt/nginx/sbin/nginx

启动supervisord : sudo supervisord -c /etc/supervisord.conf

放通nginx端口:

/sbin/iptables -I INPUT -p tcp --dport 9000 -j ACCEPT

访问

转载于:https://www.cnblogs.com/jl-bai/p/10438864.html

你可能感兴趣的文章
阿里巴巴的微服务开源之路
查看>>
思科交换机 flow control 交换机流控
查看>>
中国联通与阿里云达成合作,推动5G+新媒体产业发展
查看>>
项目风险应对策略总结
查看>>
安装memcached+nginx+php+memadmin笔记
查看>>
JavaScript 实现反射机制
查看>>
postfix-tls加密
查看>>
软件测试面试-必掌握的 Linux常用命令大全--2.0更新版!
查看>>
结构体嵌套二级指针
查看>>
自定义密码输入框,集成化的支付弹框
查看>>
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
查看>>
Linux中Samba服务器的搭建
查看>>
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
查看>>
nfs服务的配置
查看>>
微信小程序支付调试
查看>>
ASP.NET中GridView数据导出到Excel
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
swoole项目思维转换 -- 前篇
查看>>
我的友情链接
查看>>