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

使用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那一层, 否则会出错。这里需要提前配置好静态资源 staticalias /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.hqwc.cn/news/486605.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Covalent Network(CQT)与 Movement Labs 达成合作,重新定义 M2 系统区块链数据可用性与性能

Covalent Network(CQT)是行业领先的多链索引器,正在与 Movement Labs 的 M2 展开具有突破性意义的合作。M2 是以太坊上的首个 Move-EVM(MEVM)ZK rollup 。这一战略合作标志着先进的实时数据索引和部署工具,…

鼠标事件和滚轮事件

1. 介绍 QMouseEvent类用来表示一个鼠标事件,当在窗口部件中按下鼠标或者移动鼠标指针时,都会产生鼠标事件。利用QMouseEvent类可以获知鼠标是哪个键按下了,还有鼠标指针的当前位置等信息。通常是重定义部件的鼠标事件处理函数来进行一些自定…

使用Streamlit构建纯LLM Chatbot WebUI傻瓜教程

文章目录 使用Streamlit构建纯LLM Chatbot WebUI傻瓜教程开发环境hello Streatelit显示DataFrame数据显示地图WebUI左右布局设置st.sidebar左侧布局st.columns右侧布局 大语言模型LLM Chatbot WebUI设置Chatbot页面布局showdataframe()显示dataframeshowLineChart()显示折线图s…

面试百问:Redis常见的故障以及发生场景

作为一个测试同学,被测系统架构中有使用到redis吗?对redis常见的故障有了解吗?又是如何进行测试的呢? 针对常见的redis面试问题,怎样才算一个高质量的回答呢,回答思路一般包括 问题的类型是什么&#xff…

Jmeter基础(2) 目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前,需要先对工具的目录有些了解,也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…

费舍尔FISHER金属探测器探测仪维修F70

美国FISHER LABS费舍尔地下金属探测器,金属探测仪等维修(考古探金银铜探宝等仪器)。 费舍尔F70视听目标ID金属探测器,Fisher 金属探测器公司成立于1931年,在实验条件很艰苦的情况下,研发出了地下金属探测器…

Java零基础 - 三元运算符

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

【k8s核心概念与专业术语】

k8s架构 1、服务的分类 服务分类按如下图根据数据服务支撑,分为无状态和有状态 无状态引用如下所示,如果一个nginx服务,删除后重新部署有可以访问,这个属于无状态,不涉及到数据存储。 有状态服务,如redis&a…

基于SSH打通隧道实现异地组网

前言 最近有异地组网的需求,我目前的是用蒲公英X1盒子来进行组网,但是蒲公英X1非会员账号有设备限制3个(这个是硬伤),虽然说可以打通P2P但是在复杂的网络环境下概率不是特别高 所以研究下SSH异地组网的方式&#xff…

PBM模型学习

本专栏着重讲解PBM学习所得,学习笔记、心得,并附有视频素材资料,视频详细目录如下: PBM相关参数解释1 PBM相关参数解释2 PBM相关案例实践1 PBM相关案例实践2 PBM相关案例实践2 PBM相关案例实践3 PBM多相流中次相界面设置1 PBM多相…

【无标题】旋转链表与力扣报错:member access within null pointer of type ‘struct ListNode‘

项目场景: 做单链表反转题目,报错:member access within null pointer of type ‘struct ListNode’ 题目链接:LINK 问题描述 我明明在初始化指针时候,已经处理了n2->next情况却依然报错 这个报错提示含义是:大概就…