Django使用uwsgi和nginx进行手动部署

news/2024/10/10 10:57:59

在Django项目中使用uWSGI和Nginx进行部署是一种常见的生产环境配置。以下是一个详细的步骤指南,帮助你完成这个过程。

前提条件

  1. 有一个已经开发好的Django项目。
  2. 服务器已安装Python、pip、Nginx和uWSGI。
  3. 有一个有效的域名(可选,但推荐)。

步骤一:准备Django项目

  1. 收集静态文件:
    在项目根目录下运行以下命令,将静态文件收集到指定的目录(如staticfiles)。

python manage.py collectstatic

设置ALLOWED_HOSTS
settings.py中,添加你的域名或服务器IP地址到ALLOWED_HOSTS列表。

ALLOWED_HOSTS = ['yourdomain.com', 'your_server_ip']

前后端分离,且部署在一台服务器上时,可以写 127.0.0.1

 

步骤二:安装和配置uWSGI

安装uWSGI:
使用pip安装uWSGI。

pip install uwsgi

创建uWSGI配置文件:
创建一个uWSGI配置文件(如myproject.ini),内容如下:

[uwsgi]
module = djangoProject.wsgi:application
master = true
workers=2
threads=2
socket = /opt/project/djangoProject/djangoProject.sock
chmod-socket = 777
chdir=/opt/project/djangoProject
daemonize=/opt/project/djangoProject/djangoProject.log

注意:项目目录为  /opt/project/djangoProject/

启动uWSGI:
使用uWSGI配置文件启动服务。

uwsgi --ini myproject.ini

注意:如果找不到uwsgi的话,它在Python安装目录的bin里面,可以使用绝对路径执行或者添加软连接后在任意路径执行

执行成功后,会看到好几个 worker启动了...

 

配置nginx:

只需要更新server部分的内容:

server {# nginx启动监听的端口listen       8000;# 可以是localhost和可以是本机ip地址,如果要给公司其他同事的电脑可以访问,需要 配置为本机的ip地址server_name  127.0.0.1;location / {include uwsgi_params;# 配置uwsgi里面的sock文件路径uwsgi_pass unix:/opt/project/djangoProject/djangoProject.sock;}}

如果访问时502的话,请把nginx.conf上面的err_log放开,然后在 nginx的logs目录下可以查看报错日志!

此时,访问 127.0.0.1:8000 即可访问web页面了!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

PC软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具

前言 国庆假期各种活动比较多,直到上班才有时间来更新文章~ 不过这两天我还是做了个小玩意(Clipify),起因是想给之前开发来自己用的简单视频剪辑工具 QuickCutSharp 加个功能,不过这个软件是基于 WinForms 开发的,做界面得拖拉控件,感觉繁琐又不灵活,于是索性重新做一个…

【AI系统】AI系统的组成

AI系统的组成是实现其设计目标的基础。本文将详细介绍AI系统的各个组成部分,以及它们如何协同工作以支持AI应用程序的开发和运行。 I. 引言 AI系统的复杂性要求其组成不仅要关注单一的硬件或软件,而是需要一个多层次、多维度的架构设计。这包括从应用与开发层到硬件体系结构和…

记录一道面试题(哈希表 稀疏矩阵)

题目:有一个游戏中的三维地图,是由i,j,k三个轴组成的三维网络。每个立方体由不同的种类代表,比如空气,水,沙子,泥土。地图上方的空气方块,不会经常变动且数量占大多数,下方是各种类型的方块,会经常相互转换(水变沙子,沙子变泥土等)。 问题:请你实现一个存储该地…

面试 - 补充 - HTML/CSS(可能问到的题目展示)

如何理解HTML语义化? 默认情况下,哪些元素是块级元素,哪些是内联元素? 盒模型宽度如何计算? margin纵向重叠的问题 margin负值的问题 BFC理解和应用 float布局的问题 flex画色子 absolute和relative依据什么定位? 居中对齐有哪些实现方式 line-height继承(有坑) rem是什…

【AI系统】AI系统的设计目标与挑战

在当今快速发展的人工智能领域,AI系统的设计目标和面临的挑战是多维度的。本文将探讨AI系统设计的核心目标以及为实现这些目标所面临的挑战。I. 引言 AI系统作为连接硬件和上层应用的桥梁,其设计目标直接影响着AI技术的发展和应用的广泛性。一个高效、灵活且稳定的AI系统是推…

题解:P7353 [2020-2021 集训队作业] Tom Jerry

Problem Link 思考 Tom 怎么获胜,有以下两种情况:Tom 不断限制 Jerry 的活动范围,直到困死。 ~Tom 瞎走都可以赢~,有一个点能让 Tom 必胜。对于(1),显然 Tom 需要不断走割点,由此想到圆方树。假设 Tom 在 \(a\),Jerry 在 \(d\),Jerry 能在 \(a\) 的子树里任意走,所以…

利用大模型设计测试用例

安装python 依赖 pip install torch transformers accelerate sentencepiece python代码,设计一个测试用例from transformers import AutoTokenizer, AutoModelForCausalLM import os import torch # 导入 torch 库# 设置 HTTP 和 HTTPS 代理(如果需要) os.environ[http_pr…

测试流程必须严格执行吗?

技术交流群有同学问了这样一个问题:公司有较为严格的测试流程和项目交付规范,但目前工期紧张且资源严重不足,是否还需要严格遵守流程规范。如果严格遵守流程规范则可能要延期交付,或者项目组的同学需要大量加班,有什么解决办法?该说不说,这确实是很头疼的问题。对项目管…