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

news2024/9/19 10:36:25

使用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/1465178.html

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

相关文章

Python算法题集_图论(课程表)

Python算法题集_课程表 题207:课程表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【循环递归全算】2) 改进版一【循环递归缓存】3) 改进版二【循环递归缓存反向计算】4) 改进版三【迭代剥离计数器检测】 4. 最优算法5. 相关资源 本…

GaussDB SQL调优:建立合适的索引

背景 GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000扩展能力,PB级海量存储等企业级数据库…

Rust之构建命令行程序(四):用TDD(测试-驱动-开发)模式来开发库的功能

开发环境 Windows 11Rust 1.75.0 VS Code 1.86.2 项目工程 这次创建了新的工程minigrep. 用测试-驱动模式来开发库的功能 既然我们已经将逻辑提取到src/lib.rs中,并将参数收集和错误处理留在src/main.rs中,那么为代码的核心功能编写测试就容易多了。我…

CSS轻松学:简单易懂的CSS基础指南

css基础 更多web开发知识欢迎访问我的专栏>>> 01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:…

揭秘抖音自动评论软件的使用方法和步骤

**一、引言** 随着移动互联网的普及,抖音已经成为了人们日常生活中不可或缺的一部分。为了更好地利用抖音,我们今天就来探讨一下抖音自动评论软件的使用方法和步骤。本文将通过通俗易懂的语言,结合实际操作,帮助大家轻松掌握这一…

springboot网站开发0201-使用MybatisPlus查询数据库信息返回前端渲染

springboot网站开发0201-使用MybatisPlus查询数据库信息返回前端渲染!这一次我们将会详细的展示一个完整的数据库查询案例,从查询数据库到返回前端渲染页面完成一个流程。 首先,我们需要清楚,本次业务需求是,查询新闻分…

Android 仿信号格子强度动画效果实现

效果图 在 Android 中,如果你想要绘制一个圆角矩形并使其居中显示,你可以使用 Canvas 类 drawRoundRect 方法。要使圆角矩形居中,你需要计算矩形的位置,这通常涉及到确定矩形左上角的位置(x, y)&#xff0…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理(中)

↑↑↑↑接上一篇继续部署↑↑↑↑ 目录 一、k8s集群的三种接口 二、k8s的三种网络模式 1、pod内容器之间的通信 2、同一个node节点中pod之间通信 3、不同的node节点的pod之间通信 Overlay Network VXLAN 三、flannel网络插件 1、flannel插件模式之UDP模式&#xff0…

计算机视觉学习指南(划分为20个大类)

计算机视觉的知识领域广泛而庞杂,涵盖了众多重要的方向和技术。为了更好地组织这些知识,我们需要遵循无交叉无重复(Mutually Exclusive Collectively Exhaustive,MECE)的原则,并采用循序渐进的方式进行分类…

数据库增删改查

DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用来创建数据库用户、控制数…

智能运维服务指的是哪些?智能运维阶段有哪些

智能运维服务通常包含哪些关键组成部分?它们在IT管理中的作用和重要性?智能运维的发展可以分为哪些主要阶段?每个阶段的核心技术或实践有哪些,它们是如何推动运维工作向更高水平的自动化和智能化发展的? 智能运维服务…

8.CSS层叠继承规则总结

CSS 层叠继承规则总结 经典真题 请简述一下 CSS 中的层叠规则 CSS 中的层叠继承规则 在前面《CSS属性的计算过程》中,我们介绍了每一个元素都有都有所有的属性,每一个属性都会通过一系列的计算过程得到最终的值。 这里来回顾一下计算过程&#xff0…

K8S—Pod详解

目录 一 Pod基础概念 1.1 Pod是什么 1.2 为什么要使用Pod?Pod在K8S集群中的使用方式? 1.3 基础容器pause 二 Pod的分类 2.1 自主式Pod和控制器管理的Pod 2.2 容器的分类 2.2.1 基础容器(infrastructure container) 2.2.2…

【Linux】Vagrant搭建Linux环境

Vagrant Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。 安装Vagrant 从Vagrant官网下载安装包,执行安装。 安装VirtualBox 从官网下载VirtualBo…

企业品牌软文发布在媒体上,有啥用呢

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 通常企业都会建立自己的媒体矩阵,在公众号,视频号,抖音,网易号,搜狐号等企业品牌矩阵中发布软文,公司动态&#xf…

智慧城市|SHARE 孪影F2 PRO 在数字化城市平台中的应用。

在数字化时代背景下,乌审旗政府积极响应实景三维中国建设工作,以数字乌审作为全旗智慧城市总框架、总平台,致力提升城市治理现代化水平,结合互联网、云计算、人工智能等信息技术建设新型智慧城市,推进城市发展新理念。…

现货黄金怎么交易

现货黄金是投资者广泛关注的一种黄金交易方式。与期货黄金相比,现货黄金交易更加简单、灵活,同时也更容易掌握。本文将介绍现货黄金交易的基本知识,以及投资者应该如何进行现货黄金交易。 一、现货黄金交易基础知识 什么是现货黄金&#xf…

ES6内置对象 - Set

Set(es6提供的一种数据结构,类似数组,是一个集合,可以存储任何类型的元素且唯一、不重复,so,多用于元素去重) 如上图,Set数据结构自带一些方法 1.Set对象创建 let a new Set([1,2,3,3,1,2,4,…

4个为数据程序员量身打造的PyCharm插件

SonarLint 插件可以帮助开发人员在编码过程中发现潜在的代码问题,提高代码质量。可在实时编码过程中发现并修复代码问题,类似于拼写检查器。它不仅仅是一个代码检查工具,更像是代码质量助手。 PyCharm 是一款由 JetBrains 公司推出的强大的 …

Ubuntu系统本地部署Inis博客结合内网穿透实现远程访问本地站点

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总…