在开始配置之前,需要将整个项目文件拷贝一份,然后移入你想要的放置的目录中。

一、Django配置

1、settings.py配置

复制全局settings.py配置文件,创建一个副本命名为/pro_settings.py,修改DEBUG为False。

DEBUG =False#填写你自己的ip和域名

ALLOWED_HOSTS = [“ 192.168.216.137","localhost","127.0.0.1"]

#此处设置可以访问服务器的IP地址,*为允许所以地址

第一次部署的时候,最好先不要修改,否则出错的时候不容易排错。

2、wsgi.py配置

#修改pro_mysite/wsgi.py文件

importosfrom django.core.wsgi importget_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'peo_mysite.pro_settings')

application= get_wsgi_application()

3、生成requirements.py文件(最好在根目录下单独建立一个目录,用于存放这些文件)

项目部署文件肯定也是运行在python环境下的,那么势必需要依赖的包文件,所以也需要为部署的项目重新建立一个运行的虚拟环境,并安装项目运行时所依赖的包、模块,所以需要先进入开发时的虚拟环境,将安装的包、模块导出来,安装在项目部署的虚拟环境中(注意:有的包、模块不是我们通过pip install 从源地址安装的,所以在导出时,需要将其删除,通过源文件安装。)

通过>>> pip freeze > requirements.txt

将安装的第三方包、模块导出到requirements.txt文件,放在项目中,供部署时安装。

上面的fdfs-client-py==1.2.6不是通过源地址安装的,而是直接通过源文件安装的,所以需要将这个模块删除。

通过>>> pip install requirements.txt

安装从源地址安装的第三方包、模块(在此之前,需要创建项目运行虚拟环境),

安装完成后,再安装通过源文件安装的第三方包、模块,比如我的fdfs-client-py==1.2.6模块

两类包、模块都安装完成后,接下来就是安装django项目运行的服务器模块了(注意:django项目部署时,与我们开发时运行的方式不太一样;开发时,直接使用命令python manage.py runserver 0:8000就可以了,但是部署时,是运行在一个WSGI服务器上的,此时只需要相关配置,再运行wsgi服务器,就可以起启动项目了。)

通过>>> pip install uwsgi

安装WSGI服务器

可以写一个test.py文件测试uwsgi是否安装成功

通过>>> uwsgi --http :8000 --wsgi-file test.py

这个命令表示WSGI服务器运行在8000端口,一旦接收到请求,就会将解析请求,并调用test.py文件里的application函数,返回一个响应,

uwsgi配置(创建uwsgi_conf_ini配置文件)

[uwsgi]#使用nginx连接时使用,Django程序所在服务器地址#选择内网IP和端口

socket=172.26.149.79:8000

#项目根目录

chdir=/root/django-projects/dj32_pro/dj32_pro#项目中wsgi.py文件的相对目录

wsgi-file=dj32_test/wsgi.py#进程数

processes=2

#线程数

threads=2

#uwsgi服务器的角色

master=True#存放进程编号的文件

pidfile=uwsgi.pid#日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。以前的runserver是依赖终端的

daemonize=logs/uwsgi.log#指定虚拟环境所在目录,不能填相对目录

virtualenv=/root/python-venv/dj32

要注意上述配置标红的地方,一定要严格遵照执行,

socket:表示项目运行的IP地址和端口号,一定要是内网地址;

chdir:表示项目的根目录(使用pwd命令获取);

wsgi-file:表示项目中wsgi.py文件的位置,在主APP下;

daemonize:记录项目运行的日志,是相对于这个配置文件的位置,不是相对于根目录,切记;

virtualenv:表示项目运行的虚拟环境的绝对路径

启动uwsgi(进入.ini配置文件所在的目录,启动uwsgi服务)

启动uwsgi>>> uwsgi --ini uwsgi_conf.ini

停止uwsgi>>> uwsgi --stop uwsgi.pid

1、安装nginx(根据自己的系统选择合适的nginx配置,以Centos为例)

>>> yum -y install nginx

2、启动nginx,查看启动状态,如果启动状态为active,则代表启动成功

3、测试是否安装成功

nginx默认运行在80端口,可以直接在浏览器中访问,如果有显示,表示在安装成功,

4、nginx常用命令(如果不是root用户,需要在前面加sudo)

停止nginx服务器>>> systemctl stop nginx

启动nginx服务器>>> systemctl start nginx

重启nginx服务器>>> systemctl restart nginx

重载配置而不关闭>>> systemctl reload nginx

设为开机自启动>>>> systemctl enable nginx

取消开机自启动>>>> systemctl disable nginx

5、nginx配置(找到配置文件的位置,修改配置文件,配置文件的位置,上面已经标出来了)

/etc/nginx/nginx.conf

upstream dj32_pro {#此处为uwsgi运行的ip地址和端口号

server 172.26.149.79:8000;

}

server {#监听端口

listen 80;#服务器域名或者ip地址

server_name www.blogcloud.info;#编码

charset utf-8;#文件最大上传大小

client_max_body_size 75M;#媒体文件

location /media {

alias/home/pyvip/pro_mysite/media;

}#静态文件

location /static {

alias/home/pyvip/pro_mysite/static;

}#主目录

location /{

uwsgi_pass pro_mysite;

include/etc/nginx/uwsgi_params;

}

}

#修改sudo vim /etc/nginx/nginx.conf#第一行开头修改用户,将www-data改为你当前的用户 创建 Nginx 运行使用的用户 www:

user root;

user后面跟你自己主机的用户名

具体看一下nginx配置的全部内容

具体看一下我们配置好的配置文件

测试nginx配置文件是否正确>>> nginx -t -c /etc/nginx/nginx.conf

如果打印如下内容,就表示成功了:

重新加载配置>>> nginx -s reload -c /etc/nginx/nginx.conf

详细了解nginx配置正向代理、反向代理、负载均衡、动静分离相关内容请看(

补充:如果遇到启动uwsgi和nginx时,启动失败,多半是端口占用的问题,那就解除占用

查看指定端口>>> netstat -ap | grep 8000

查看端口>>>>>>netstat -a

杀死进程>>>>>>pkill -9 PID

查看某个程序的进程>>> ps -aux | grep nginx

python项目上线_django之项目部署上线相关推荐

  1. python搭建项目结构_Django搭建项目实战与避坑细节详解

    Django 开发项目是很快的,有多快?看完本篇文章,你就知道了. 安装 Django 前提条件:已安装 Python. Django 使用 pip 命令直接就可以安装: pip install dj ...

  2. python避坑_Django搭建项目实战与避坑细节详解

    Django 开发项目是很快的,有多快?看完本篇文章,你就知道了. 安装 Django 前提条件:已安装 Python. Django 使用 pip 命令直接就可以安装: pip install dj ...

  3. Jenkins 自动化部署上线

    转载于互联网 jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布 Jenkins 自动化部署上线 Jenkins Jenkins 自动化部署上线一.Je ...

  4. python项目如何上线_django项目部署上线(示例代码)

    前言 完善的django项目上线,有很多种上线的方法,比如apache, uwsgi, nginx等.这里只介绍2种,一种是django自带的,另外一种则是nginx + uwsgi完成介绍.这里的系 ...

  5. Django项目部署上线

    当项目开发完毕后,需要上线.此时,需创建从从uwsgi.nginx.静态文件三个方面处理.(当然,本文只是在Django下的部署,可作参考.) 服务器介绍 服务器:私有服务器.公有服务器 私有服务器: ...

  6. 前后端分离项目部署上线详细教程

    " 大家好,我是雄雄,欢迎关注微信公众号:????雄雄的小课堂???? " 今天,给大家分享的是,Springboot+Vue项目如何部署上线的详细步骤. 代码编辑器 前端:Web ...

  7. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...

    阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...

  8. vue2-ssr从vue-cli搭建项目改造服务端渲染+打包上线部署

    为了完成vue+ssr,本人呕心沥血翻阅很多博主的文档,并在b站看了很多视频之后,经过个人实践,终于整理出一套完整版,无缺失,不报错的改造流程(亲测!!) 从创建=>打包=>上线部署,详细 ...

  9. 如何开发自己的第1个可以上线的Java项目?

    八月伊始,很多同学还沉浸在放暑假的喜悦中,却要跟大家讲一个鬼故事-- 2022届互联网大厂秋招已经正式拉开了帷幕! (华为研发岗位提前批) (字节跳动研发岗位提前批) 随着华为/字节跳动/阿里巴巴等互 ...

最新文章

  1. 容器必须设置宽度吗_消防泵必须设置自动巡检柜吗
  2. 【从零开始自制CPU之学习篇03】锁存器与触发器
  3. Ubuntu下VIM使用指南
  4. 如何运行一段python代码_Python退出时强制运行一段代码如何实现 Python退出时强制运行一段代码实现方法...
  5. 美国明确警告德国,3G退网5G手机不需要换号,抽烟酗酒学生不能认定为家庭经济困难,大学食堂凭运动步数打折,这就是今天的大新闻。...
  6. 电影特效用到什么计算机知识,后期影视特效处理知识普及
  7. Docker 入门(3)Docke的安装和基本配置
  8. http?https?相对协议?
  9. 100% .NET Control_自动完成Combobox的XComBo控件(VB.NET)
  10. 如何使用 Java AWT 创建一个简易计算器
  11. 将本地创建的工程上传到github仓库中
  12. python类和对象的定义_day15_python_类和对象
  13. sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)
  14. ubuntu上下左右变成BD
  15. 你需要知道的包管理器(Package Manager)
  16. 幅度和幅值有区别吗_你知道避雷器与浪涌保护器二者的区别吗?
  17. 初探OSG+OpenCascade(简称:OCC)在QT上的实践
  18. 经典论文解析——Unet和Vnet——图像分割
  19. 【学习笔记】ACP敏捷项目管理
  20. 如何开启任务计划程序

热门文章

  1. 95-38-040-Buffer-AbstractReferenceCountedByteBuf引用计数
  2. 【kafka】Kafka 源码解析:Group 协调管理机制
  3. 【Elasticsearch】Elasticsearch 中增加分片数量,聚合一定会变快吗?
  4. 【ElasticSearch】Es 源码之 AutoFollowCoordinator 源码解读
  5. 95-40-060-java.util.concurrent-ConcurrentSkipListMap
  6. 【SpringCloud】 spring cloud 2021年 技术 更新换代 停更 等信息
  7. 【Flink】flink Kafka报错 : Failed to send data to Kafka: This server is not the leader for that topic-pa
  8. 【guava】大数据量下的集合过滤—Bloom Filter
  9. 【Flink】Flink Table 基于Processing Time、Event Time的多种Window实现
  10. 【Spark】扩展Spark Catalyst,打造自定义的Spark SQL引擎