django+vue+nginx生产环境部署配置
部署环境:
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/bash NAME="projectName" # Name of the application
DJANGODIR=/opt/projectName # Django project directory
SOCKFILE=/tmp/projectName.sock # we will communicate using this unix socket
PIDFILE=/opt/projectName/projectName.pidfile
NUM_WORKERS= # How many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE= projectName.settings.base # Which settings file should Django use
DJANGO_WSGI_MODULE=projectName.wsgi # WSGI module name echo "Starting $NAME as `whoami`" # Activate the virtual environment
cd $DJANGODIR # Start your Django Unicorn
echo "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
"$@"
增加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 app
stdout_logfile = /var/log/supervisor/gunicorn-supervisor.log ; Where to write log messages
redirect_stderr = true
autostart = true
autorestart = true
stderr_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.gz
curl -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/pcre
make && make install
安装nginx
tar xf nginx-1.13..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_module make && 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
访问
django+vue+nginx生产环境部署配置的更多相关文章
- 学习项目部署Django+uwsgi+Nginx生产环境部署
绪论 项目生产环境部署,是很重的一个知识点.第一,Django自带的服务器很简陋,由于测试和开发环境尚可,无法用于生产环境,保障安全性和可靠性.以及性能.此外,学习部署方式,还有利于了解生产部署后的项 ...
- Django + Uwsgi +Nginx生产环境部署
python manage.py runserver 0.0.0.0:80 ,一定不要用这个轻量级Server作为你的生产环境下的Server,因为它只能用于开发自测阶段.它既没有安全审计功能,而且又 ...
- django项目的生产环境部署,利用nginx+uwsgi
1.坏境准备 centos6.5 django项目 python坏境(python3.6,) 所需的各种模块(django,uwsgi,sqlite3)具体看坏境 我的测试django项目的数据库用的 ...
- ubuntu 常用生产环境部署配置测试调优
1,ubuntu monogdb 安装配置 2,ubuntu jdk1.7,tomcat7安装 3,ubuntu LAMP部署 4,mongodb 远程热备份及恢复 使用自带的mongodump和mo ...
- 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本 uwsgi- ...
- Django + Uwsgi + Nginx 的生产环境部署
使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归 ...
- ubuntu Django + Uwsgi + Nginx 的生产环境部署
一.概述 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇 ...
- 10: Django + Uwsgi + Nginx 的生产环境部署
1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI: 最早的协议 2. FCGI: 比CGI快 ...
- Django + Uwsgi + Nginx 的生产环境部署实战
目录 Django + Uwsgi + Nginx 的生产环境部署实战 安装Uwsgi 一.使用命令来启动django项目 二.使用配置文件来启动我们的Django项目 安装Nginx 配置Nginx ...
随机推荐
- python之斐波纳契数列
斐波纳契数列 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,676 ...
- HDwiki 源代码 - 互动百科开源
昨日3.15,在曝光的企业中出现了一家让我好奇的企业(互动百科),一直不敢想百科能独立出来做成一家公司.出于对网站的好奇,今日进入该网站,惊讶的是此公司已经上市(股票代码:835799),在网站的底部 ...
- 解决Linux使用php命令 -base comment not found并安装composer
获取php的安装目录 使用 find / -name php.ini 查看php的安装位置 /usr/local/php/lib/php.ini # cd 到/usr/local/php/lib/ph ...
- windows Server 2008 r2-搭建FTP服务器
FTP协议介绍 FTP协议工作在OSI参考模型的第七层,TCP模型的第四层上(即应用层上).使用FTP传输而不是UDP,与服务端建立连接经过三次握手. FTP端口介绍 FTP默认端口是21,.(21端 ...
- day23-python之日志 re模块
1.logging import logging #-----------------------------------logging.basicConfig logging.basicConfig ...
- [译]The Python Tutorial#12. Virtual Environments and Packages
[译]The Python Tutorial#Virtual Environments and Packages 12.1 Introduction Python应用经常使用不属于标准库的包和模块.应 ...
- Python9-条件-定时器-队列-day40
复习 线程 线程是进程中的执行单位 线程是cpu执行的最小单位 线程之间资源共享 线程的开启和关闭以及切换的时间开销远远小于进程 线程本身可以在同一时间使用多个cpu,python与线程 由于cpyt ...
- java十分钟速懂知识点——引用
一.由健忘症引起的问题 今天闲来没事在日志中瞟见了个OutOfMemoryError错误,不由得想到前一段时间看到一篇面经里问到Java中是否有内存泄露,这个很久以前是留意过的,大体记得内存溢出和内存 ...
- SSH进阶之路
[SSH进阶之路]Hibernate基本原理(一) 在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装.一句不难,难道是真的不难还是眼高手低 ...
- leetcode 【 Search in Rotated Sorted Array II 】python 实现
题目: 与上一道题几乎相同:不同之处在于array中允许有重复元素:但题目要求也简单了,只要返回true or false http://www.cnblogs.com/xbf9xbf/p/42545 ...