1、django项目部署前需要生成admin的静态资源文件

(1)生成admin的静态资源文件

# 关闭debug模型
DEBUG = False
# 允许所有域名访问
ALLOWED_HOSTS = ['*']
# 静态资源路径
# STATIC_ROOT设置项目上线后使用的静态资源
STATIC_ROOT = 'D:/code/MyDeploy/static'(自定义本机路径)
# STATICFILES_DIRS将Admin的静态资源保存在static文件夹中
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]

(2)pycharm中根据下面步骤进行操作

  (i)pycharm-->Tools-->Run manage.py Task

  (ii)collectstatic

  信息提示,是否覆盖现有的static文件夹

You have requested to collect static files at the destination
location as specified in your settings. This will overwrite existing files!
Are you sure you want to do this? Type 'yes' to continue, or 'no' to cancel:

  输入yes并回车

(3)一般来说,项目上线的静态资源都由配置属性STATIC_ROOT决定,所以项目的urls.py新增如下配置

from django.views import static
from django.conf.urls import url
from django.conf import settings
urlpatterns = [
# 设置项目上线的静态资源路径
url('^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static')
]

2、安装python3

注:在安装python3.6前,分别需要安装Linux的wgt工具,GCC编译器环境已经python3使用的依赖组件

(1)安装Liunx的wget工具,用于网上下载文件

yum -y install wget

(2)GCC编译器环境,安装python3所需的编译环境

yum -y install gcc

(3)python3使用的依赖组件

yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite*-devel mysql-devel

(4)下载python3.6压缩包

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

(5)解压python3.6安装包

tar -zxvf Python-3.6.3.tgz

(6)进入python3.6.3文件夹编译安装

cd Python3.6.3
sudo ./configure
make && make install

3、部署uWSGI服务器

(1)安装python3所需模块

pip3 install mysqlclient
pip3 install django
pip3 install uwsgi

(2)修改项目setting.py配置

# 数据库连接信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',(改为mysql对应数据库)
'USER': '',(改为mysql数据库连接用户名)
'PASSWORD': '',(改为mysql数据库连接密码)
'HOST': '',(改为mysql服务器地址)
'PORT': '',
}
}

(3)测试uwsgi服务器是否正常运行

uwsgi --http :8080 --chdir 项目目录 -w 项目目录下.wsgi

例:

uwsgi --http :8080 --chdir /Data/work/MyDeploy -w MyDeploy.wsgi

其中/Data/work/MyDeploy为项目的绝对路径,MyDeploy.wsgi是项目的wsgi.py文件

(4)为项目编写uWSGI配置文件

在项目主目录下创建*.ini配置文件,如:mydeploy.ini

[uwsgi]
# Django-related settings
socket= :8080 # the base directory (full path)
chdir=/Data/work/MyDeploy # Django s wsgi file
module=MyDeploy.wsgi # process-related settings
# master
master=true # maximum number of worker processes
processes=16 # ... with appropriate permissions - may be needed
chmod-socket=664
# clear environment on exit
vacuum=true

启动uwsgi命令,查看配置文件是否正确

uwsgi --ini mydeploy.ini

4、安装Nginx部署项目

(1)添加Nginx的安装源

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

(2)yum安装

yum install nginx

(3)启动nginx,验证瘦安装成功

nginx(systemctl start nginx)

(4)修改nginx配置文件,实现nginx服务器与uWSGI服务器的通信连接

cd /etc/nginx
vim nginx.conf
user  nginx;
worker_processes 1; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} http {
include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; # 新增内容
server {
listen 8090;
server_name 127.0.0.1;
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log; client_max_body_size 75M;
# 连接uWSGI服务器,uwsgi_pass的端口与uWSGI设置的socket= :8080端口一致
location / {
allow all;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
uwsgi_read_timeout 2;
}
# 设置静态资源路径
location /static/ {
expires 30d;
autoindex on;
add_header Cache-Control private;
# /Data/work/MyDeploy/static为项目静态目录路径
alias /Data/work/MyDeploy/static/;
} } }

(5)重启nginx,启动uWSGI服务器

cd /(项目路径)
uwsgi --ini mydeploy.ini

nginx+uwsgi部署django项目的更多相关文章

  1. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...

  2. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

  3. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

  4. Nginx + uWSGI 部署Django 项目,并实现负载均衡

    一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...

  5. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  6. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

  7. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  8. 填坑!!!virtualenv 中 nginx + uwsgi 部署 django

    一.为什么会有这篇文章 第一次接触 uwsgi 和 nginx ,这个环境搭建,踩了太多坑,现在记录下来,让后来者少走弯路. 本来在 Ubuntu14.04 上 搭建好了环境,然后到 centos7. ...

  9. linux上使用nginx、uwsgi部署django项目

    参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...

随机推荐

  1. 华为模拟器eNSP安装(最新)网络工程师必备!

    电脑杂七杂八的东西太多了,于是今天把电脑重装系统了,正好重新安装一下华为模拟器eNSP,这个教程应该是最新的,因为eNSP版本更新以及华为官网页面的变化,有的小伙伴安装eNSP都下载不到安装包,接下来 ...

  2. Android中对已安装应用的管理实现

    获取.管理手机中已安装的所有应用信息 1.创建应用的实体类AppInfo,属性有应用的名称.包名.图标.第一次安装时间和版本名称 public class AppInfo { private Stri ...

  3. 如何检测或判断一个文件或字节流(无BOM)是什么编码类型

    前言: 昨天,在文章:终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了 中, 不小心看到一条留言: 然后就去该地址看了一下,这一看,顺带折腾了一天. 今天 ...

  4. 快速构建SPA框架SalutJS--项目工程目录 三

    配置文件 在开始我们的第一个界面之前,我们需要把初始的html和config文件配置好.html非常简单,只需要一个div作为最外部的容器包裹着所有界面即可: <!DOCTYPE html> ...

  5. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    开发背景: 最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据库之前是不会进行重复判断的,因此只有在全部数据导入进去以后在执行一条语句进行删除,保证数据唯一性 ...

  6. Ubuntu16 FTP的安装,基本配置与权限控制

    1.ftp与sftp 大致了解下: ftp是一个文件传输协议,linux环境需要它才能支持文件的传输与查看,它的默认端口是21. sftp是加密/解密的文件传输协议,因为它每次传输都有加密解密的步骤, ...

  7. 磁盘阵列raid类型及含义

    raid0: 多块盘同时进行读写: 优点是读写效率高,缺点是没有数据冗余: 最少需要两块盘. raid1: 将数据盘都做镜像: 优点是有数据冗余:缺点是读写效率低,磁盘利用率低: 最少需要两块盘. r ...

  8. Swift LeetCode 目录 | Catalog

    请点击页面左上角 -> Fork me on Github 或直接访问本项目Github地址:LeetCode Solution by Swift    说明:题目中含有$符号则为付费题目. 如 ...

  9. mysql优化之SQL语句优化

    Mysql优化是一个老生常谈的问题, 优化的方向也优化很多:从架构层;从设计层;从存储层;从SQL语句层; 今天讲解一下从SQL语句层: 这个部分是程序员最容易把控的地方,也是最容易忽视的地方. 一个 ...

  10. java配置环境及安装

    1.安装JDK开发环境 首先登陆https://www.oracle.com 第一步:Products ---- Java ---- Download java(JDK) for Developers ...