个人博客系列-Django部署-nginx(3)

news2025/2/26 0:25:09

使用Nginx + uwsgi进行部署django项目

一. 检查项目是否可以运行

  1. 启动项目
python manage.py runserver 0.0.0.0:8099
  1. 输入ip:8099 查看启动页面
    在这里插入图片描述出现上述页面表示运行成功

二. 安装uwsgi并配置

2.1 下载uwsgi

pip install uwsgi

新建文件test.py写入内容,测试一下是否可以执行

def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'test.html')])
    return [b'hello world']

启动:uwsgi --http-socket :8098 --file test.py
在这里插入图片描述
访问页面能够看到内容
在这里插入图片描述
2.2 配置uswgi文件, 需要创建一个 ini 文件,指定项目目录、模块、端口、进程、日志等信息,
这里在项目根目录下创建了一个uwsgi_conf目录,并将ini文件及其他相关文件都放在此目录中
ini文件内容如下:

[uwsgi]
# 对外提供 http 服务的端口
http = :8086
#the local unix socket file than commnuincate to Nginx   用于和 nginx 进行数据交互的端口
socket = 127.0.0.1:8098
# the base directory (full path)  django 程序的主目录
chdir= /home/lingxl/www/Blog/Blog_pro/Blog
# Django's wsgi file
wsgi-file = Blog/wsgi.py
# maximum number of worker processes
processes = 4
#thread numbers startched in each worker process
threads = 2
#monitor uwsgi status  通过该端口可以监控 uwsgi 的负载情况
stats = 127.0.0.1:8097
# clear environment on exit
vacuum = true
##	指定uWSGI日志文件的路径。uWSGI将在此文件中记录运行日志和错误信息
daemonize=%(chdir)/uwsgi_conf/logs/uwsgi.log 

2.3 运行uwsgi

 uwsgi uwsgi.ini

在这里插入图片描述

看到下面页面表示配置成功
在这里插入图片描述
以上工作表面uwsgi已与django连通成功

如果不成功,可以查看日志文件,日子文件路径需要在ini文件进行配置。

三. 配置nginx

3.1 此处忽略Nginx安装步骤,Nginx的安装单独整理。
pass
3.2 找到 /etc/nginx/nginx.conf,看一下配置文件,在 /etc/nginx/ 中创建blog目录,在blog目录下再创建一个blog.conf文件。

mkdir blog && cd blog && touch blog.conf

3.3 在/etc/nginx/nginx.conf 的http里写入两行代码:

server_names_hash_bucket_size 64;
include /etc/nginx/blog/*.conf;

3.4 写入blog.conf内容

server {
        listen       8099;   # 外部进行访问的接口
        server_name  localhost;   # 服务器域名
#         root         /usr/share/nginx/html;
        access_log  /var/log/nginx/blog.log;
        error_log   /var/log/nginx/blog_error.log;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
             include  /etc/nginx/uwsgi_params;
             uwsgi_pass  127.0.0.1:8098;    与uwsgi的端口保持一致
        }

         location /static/ {
            autoindex on;
            ## 必须能到达css,js那一层, 否则会出错。这里需要提前配置好静态资源 static
            alias /home/lingxl/www/Blog/Blog_pro/Blog/static/;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

3.4 static 配置
在django的settings的最下边写入两行代码

STATIC_URL = '/static/'
STATIC_ROOT = f"{BASE_DIR}/static"

在这里插入图片描述
3.5 搜集 static 静态资源

python manage.py collectstatic

3.6 Nginx检查配置文件

nginx -t 是nginx检查配置文件是否有错误的命令,如果正常,输出如下
在这里插入图片描述
3.7 使配置文件生效

nginx -s reload 是nginx重新载入配置文件的命令,可以让配置项生效。
在这里插入图片描述
3.8 重启nginx
systemctl restart nginx
在这里插入图片描述
3.9 访问监听端口
在这里插入图片描述
配置成功!!!

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

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

相关文章

面试笔记系列六之redis+kafka+zookeeper基础知识点整理及常见面试题

目录 Redis redis持久化机制:RDB和AOF Redis 持久化 RDB的优点 RDB的缺点 AOF 优点 AOF 缺点 4.X版本的整合策略 Redis做分布式锁用什么命令? Redis做分布式锁死锁有哪些情况,如何解决? Redis如何做分布式锁&#xff1f…

Logic Pro:专业音乐制作软件,为你的音乐插上翅膀

Logic Pro是一款功能强大的音乐制作软件,专为专业音乐人和音乐爱好者设计。它提供了全面的音乐创作工具,包括音频录音、编辑、混音、合成以及自动化等功能,让你能够轻松实现音乐梦想。 Logic Pro软件获取 首先,Logic Pro拥有卓越…

Tomcat:Java Web

简介 Apache Tomcat 是 Java Web 应用程序开发中最为常用的服务器之一。作为一个开源、轻量级的 Servlet 容器和 JSP 容器,Tomcat 提供了一个稳定可靠的运行环境,使得开发者可以快速开发、部署和管理 Java Web 应用程序。本文将深入介绍 Tomcat 的特点、…

js 面试 sort背后原理及排序使用方法

1 sort 概念 2 原理 之前版本是用的插入排序 和 快速排序。 现在用的是冒泡排序。 3 排序方式: 2-1 根据字符码点排序 2-2 从小到大或从大到小排序 2-3 对数组中的对象进行排序

高校水电预付费管控系统

高校水电预付费管控系统在现代高校管理中扮演着重要角色。这一系统通过整合先进的科技手段,如智能计量设备和互联网技术,实现对校园水电消费的精准监控和管理。首先,高校水电预付费管控系统能够有效监测学生宿舍、教学楼等区域的实时用水用电…

Zookeeper基础入门-2【ZooKeeper 分布式锁案例】

Zookeeper基础入门-2【ZooKeeper 分布式锁案例】 四、ZooKeeper-IDEA环境搭建4.1.环境搭建4.1.1.创建maven工程:zookeeper4.1.2.在pom文件添加依赖4.1.3.在项目的src/main/resources 目录下,新建文件为“log4j.properties”4.1.4.创建包名com.orange.zk …

网站数据加密之Hook通用方案

文章目录 1. 写在前面2. 请求分析3. 编写Hook4. 其他案例 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

Python进阶学习:Pickle模块--dump()和load()的用法

Python进阶学习:Pickle模块–dump()和load()的用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您…

【c语言】探索联合和枚举---解锁更多选择

前言 上一篇 讲解的是结构体相关知识,接着本篇主要讲解的是 联合和枚举 相关知识 结构体、联合体和枚举都属于 自定义类型。 那么接下来就跟上我的节奏,准备发车~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误&#xf…

网络协议:DHCP协议工作原理,DHCP分配方式,DHCP租约,Wireshark抓包分析DHCP报文

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》 DHCP协议 一、简介二、分配方式1)自动分配2&#xff0…

C++笔记(六)--- 静态成员变量/函数(static)

目录 C语言中静态变量 C静态成员变量 C静态成员函数 C语言中静态变量 1.函数内部用static修饰的变量,只能在此函数使用,但所修饰的变量不随函数释放而释放,下次调用时的值仍为上次结束时的值2.static修饰的全局变量只能在其定义的文件使用…

DAY9-防病毒AV概述

DNS过滤 URL过滤和DNS过滤对比

clickhouse 大表数据归档处理解决办法

本文作者为 360 奇舞团前端开发工程师 李彬 一、需求场景 基于目前项目在各个应用上的数据采集,尤其是性能监控上的采集,数据量越来越大,例如pv数据的采集表三个月的数据量已经在3亿,数据量小的也有几百万,但是目前的常…

浅谈 Linux fork 函数

文章目录 前言fork 基本概念代码演示示例1:体会 fork 函数返回值的作用示例2:创建多进程,加深对 fork 函数的理解 前言 本篇介绍 fork 函数。 fork 基本概念 pid_t fork(void) fork 的英文含义是"分叉",在这里就是 …

TypeScript+React Web应用开发实战

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在现代Web开发中,React和TypeScrip…

嵌入式学习day25 Linux

进程基本概念: 1.进程: 程序:存放在外存中的一段数据组成的文件 进程:是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡 2.进程相关命令: 1.top 动态查看当前系统中的所有进程信息(根据CPU占用率排序&a…

54.仿简道云公式函数实战-文本函数-LOWER

1. LOWER函数 将一个文本字符串中的所有大写字母转换为小写字母 2. 函数用法 LOWER(text) 3. 函数示例 将一个文本字符串中的所有大写字母转换为小写字母。 4. 代码实战 首先我们在function包下创建text包,在text包下创建LowerFunction类,代码如下…

Unity中URP实现水体(水的焦散)

文章目录 前言一、原理1、 通过深度图,得到 对应像素 在 世界空间下的Z值2、得到模型顶点在 观察空间 下的坐标3、由以上两点得到 深度图像素 对应的 xyz 值4、最后,转化到 模型本地空间下,用其对焦散纹理采样 二、实现1、获取深度图2、在顶点…

Kali Linux下载与安装

目录 1 kali官网下载镜像文件 2 VMware打开kali linux文件 3 启动kali-linux-2023.4操作系统 1 kali官网下载镜像文件 kali官网:https://www.kali.org/get-kali/#kali-platforms 进入kali官网主页后看到如图所示界面,左边“Installer Images”界面是…

C++:模版初阶 | STL简介

创作不易,感谢支持!! 一、泛型编程思想 如何实现一个通用的交换函数呢? 注:其实swap函数在C的标准库提供了,不需要自己写,这边只是举个例子 void Swap(int& left, int& right) { in…