Django-使用nginx部署
本地部署
uWSGI
在部署之前,我们得先了解几个概念
- wsgi
web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。 - uwsgi
是一种传输协议,用于定义传输信息的类型。 - uWSGI
是实现了uwsgi协议WSGI的web服务器。
环境安装
需要安装Nginx和Mysql[可选]
sudo apt install mysql-server
sudo apt install nginx
安装虚拟环境
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
编辑配置文件
~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/python3/bin/virtualenvwrapper.sh
# export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
# export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
# export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解释器
# source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
source .bashrc
虚拟环境的使用
# 创建虚拟环境 env_name
mkvirtualenv env_name
# 启动虚拟环境 env_name
workon env_name
# 停止虚拟环境
deactivate
# 删除虚拟环境,需要先退出虚拟环境
rmvirtualenv env_name
项目相关文件夹
项目名称为 ES_dj
配置Settings文件
DEBUG = False # 关闭debug调试
ALLOWED_HOSTS = ['*'] # 允许任何域方法
收集静态文件
# 静态文件
STATIC_URL = '/static/'
# 注释掉
#STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static')
#]
STATIC_ROOT = os.path.join(BASE_DIR,'static_all/')
python manage.py collectstatic --noinput
新建uwsgi.ini文件
放在script
文件夹内 uwsgi.ini
[uwsgi]
# 项目目录
chdir=/opt/ESys/ES_dj
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定项目的application
module=ES_dj.wsgi:application
# 指定sock的文件路径
socket=/opt/ESys/script/uwsgi.sock
# 启用主进程
master=true
# 进程个数
workers=5
pidfile=/opt/ESys/script/uwsgi.pid
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=1024
# 设置日志目录
daemonize=/opt/ESys/script/uwsgi.log
配置nginx
在/etc/nginx/conf.d/
加入文件 ES_dj.conf
server {
listen 443;
server_name ****.*** ; # ***.**.*.* , ifconfig
access_log /var/log/nginx/access.log main;
charset utf-8;
gzip on;
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;
# 用于https协议
ssl on;
ssl_certificate /etc/nginx/conf.d/www.crt;
ssl_certificate_key /etc/nginx/conf.d/www.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# 指定项目路径uwsgi
location / {
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_pass unix:/opt/ESys/script/uwsgi.sock;
}
# 指定静态文件路径
location /static/ {
alias /opt/ESys/ES_dj/static_all/;
index index.html index.htm;
}
}
启动uwsgi
uwsgi --ini uwsgi.ini
重启uwsgi
uwsgi --reload uwsgi.pid
关闭uwsgi
uwsgi --stop uwsgi.pid
检测uwsgi是否启动
ps -ef | grep -i uwsgi
如果找不到uwsgi命令
pip3 install uwsgi
# 建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
启动nginx
/etc/init.d/nginx start
重启nginx
/etc/init.d/nginx restart
关闭nginx
/etc/init.d/nginx stop
Django-使用nginx部署的更多相关文章
- 解决django配合nginx部署后admin样式丢失
解决django配合nginx部署后admin样式丢失 1. 在项目的settings.py文件里添加以下内容: STATIC_URL = '/static/' STATICFILES_DIRS = ...
- Django + Gunicorn + Nginx 部署 Ubuntu 服务器
Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 roo ...
- virtualvenv+django+uWSGI+nginx 部署
原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...
- django+uwsgi+nginx部署(非常详细)
django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- Django+uWSGI+Nginx 部署网站
Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...
- Django + Gunicorn + Nginx 部署之路
前言 最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候 Django 中的路由配置使用 正则 来进行的,但是我有 ...
- Ubuntu下Django+uWSGI+nginx部署
本文采用uwsgi+nginx来部署django 这种方式是将nginx作为服务端前端,将接受web所有的请求,统一管理,Nginx把所有的静态请求自己处理,然后把所有非静态请求通过uwsgi传递给D ...
- Django+Uwsgi+Nginx部署
一 uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议,uwsgi, http等协议. Nginx中HttpUwsgiMoule的作用是与uWSGI服务器进行交换 1 WSGI是一种W ...
- virtualvenv+django+uWSGI+nginx 部署 踩坑记录
原创博文 转载请注明出处! uwsgi: unrecognized option '--http:8089' uwsgi: unrecognized option '--http' uwsgi trk ...
随机推荐
- k8s节点执行master命令报错 localhost:8080 was refused
首先是按照二进制方式安装的k8s. [root@ht22 calico]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [ ...
- node服务器搭建流程
1,创建一个空文件夹,用来存放项目. 2,在空文件夹中,在cmd命令提示符中输入npm init 初始化一个服务器项目. 设置的属性信息: name : 项目名称(小括号中是默认的,文件夹名相 ...
- Springmvc01-什么是Springmvc
首先,我们回顾一下什么是MVC 1.什么是MVC MVC是模型(model),视图(View),控制器(Controller)的简写,是一种软件基本规范 Model(模型):数据模型,提供要展示的 ...
- XCTF练习题---MISC---glance-50
XCTF练习题---MISC---glance-50 flag:TWCTF{Bliss by Charles O'Rear} 解题步骤: 1.观察题目,下载附件 2.下载完成以后,隐隐约约像是一张动图 ...
- XCTF练习题---MISC---Training-Stegano-1
XCTF练习题---MISC---Training-Stegano-1 flag:steganoI 解题步骤: 1.观察题目,下载附件 2.打开下载的图片文件,发现就是一个点,修改文件扩展名,还是说查 ...
- 基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
由于我们有时候需要在基于.net framework的项目上使用(如Winform端应用),有时候有需要在.net core的项目上使用(如.net core的WebAPI),那么我们把基于SQLSu ...
- JDBC往数据库传值中文乱码以及时区不一致解决
设置一下时区和编码就可以了 "jdbc:mysql://localhost:3306/jdbcprac?characterEncoding=UTF-8&&useSSL=fal ...
- Centos 7防火墙策略配置指南
Centos 7防火墙策略配置指南 -- 清听凌雪慕忆 @ 目录 1. 开启防火墙 1.1 user切换到root用户 1.2 查看防火墙服务状态 1.3 查看firewall的状态 1.4 启动/关 ...
- JavaScript 数据结构与算法1(数组与栈)
学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.数组 几乎所有的语言都原生支持数组类型,因为数组是 ...
- 使用MinIO搭建对象存储服务
1.MinIO是什么? MinIO 是一款高性能.分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件.即X86等低成本机器也能够很好的运行MinIO. MinIO与传统的存储和其 ...