网易首页 > 网易号 > 正文 申请入驻

探索华为云EulerOS与Flexus X实例如何完美融合快速部署Django

0
分享至

前言

在当今云计算和大数据的时代,技术的迭代更新为企业带来了无限可能。华为云,作为国内领先的云服务提供商,始终致力于推动技术进步,为开发者提供更高效、更便捷的服务体验。本次828华为云征文活动,我们将目光聚焦于华为云EulerOS操作系统与Flexus X实例的深度融合,探讨如何在这一强大组合下实现Django服务的快速部署。本文将带你领略华为云的技术魅力,解锁高效部署新姿势,助力你的业务飞速发展。

什么是Django?

Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。Django适合各种类型的Web应用开发,包括内容管理系统、电子商务平台、社交网络等。对于从业于py开发的人员是一个必须要掌握的一门框架, 本篇博客我们将探索华为云EulerOS与Flexus X实例如和部署Django

查看镜像信息

本地连接服务器之后输入指令 lsb_release -a 查看镜像信息


从镜像信息中我们可以看到我们使用的镜像是Huawei Cloud EulerOS, 本次测评也是需要在该镜像下进行。

购买服务器

关于Flexus X实例的购买以及相关配置可以参考我之前的文章

https://ruocheng.blog.csdn.net/article/details/141748572

操作步骤
安装Nginx
  1. 执行命令dnf install nginx 安装Nginx, 如下图所示,在安装nginx 时报错信息中提到配置中忽略了nginx ,我们接下来修复该问题


修复nginx 被忽略的问题

打开/etc/dnf/dnf.conf文件,检查是否有以下类似的排除行:exclude=nginx 如下图所示


配置文件中确实有忽略nginx 的地方, 因此我们需要将该忽略的nginx 删除并保存, 然后重新安装即可, 如下图所示


  1. 启动Nginx

输入指令systemctl start nginx来启动nginx 服务

  1. 查看Nginx 服务状态

输入指令systemctl status nginx查看Nginx服务状态,如下图所示


安装uWSGI服务
  1. 安装相关依赖

执行指令 dnf install python3-devel gcc安装相关依赖,

我这里之前已经安装过了,因此是如下提示, 如果没有安装过的话,执行该指令是正常安装的


  1. 安装uWSGI并查看版本号

输入指令 pip install uwsgi 安装uWSGI , 通过指令 uwsgi --version 来查看版本号


  1. 创建py文件来编写所需代码

在服务器输入ll来查看目录, 通过 mkdir pyWorker 来创建文件夹来存放我们的py文件


通过 touch 来创建我们所需的 py文件


接下来将下面的代码复制到我们创建的py文件中

def application(env, start_response):
start_response('200 OK', [('Content-Type', 'text/html; charset=utf-8')])
message = "大家好,我是若城"
return [message.encode('utf-8')]

  1. 启动uWSGI服务

通过指令 uwsgi --http :8080 --wsgi-file test.py 来启动服务, 并在浏览器中输入网址 http://<公网IP>:8080访问服务

注意: 8080 端口需要再安全组入口方向打开


安装Django环境
  1. 安装Django

执行命令 pip install Django来安装 Django


  1. 初始化项目

执行指令 python -m django startproject django_project初始化Django 项目

  1. 编辑配置文件

进入项目目录,编辑配置文件django_project/settings.py,找到ALLOWED_HOSTS属性修改成如下值

ALLOWED_HOSTS = ["*"]


  1. 启动django服务

输入指令 python manage.py runserver 0.0.0.0:8080 来启动django 服务,

注意8080 端口需要再安全组入口方向打开


  1. 效果展示

浏览器中输入网址http://<公网IP>:8080访问上述服务


配置环境

编辑django_project/settings.py文件,改写成如下内容


AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
127,1 Bot

保存文件之后 输入指令 sudo python manage.py collectstatic收集所有静态文件


此时可以通过ll 来查看目录 ,目录中会多出一个static的文件,如下图所示


接下来配置配置nginx

输入指令 vim /etc/nginx/nginx.conf 打开 nginx.conf 文件找到http属性,新增以下内容

upstream django {
server 127.0.0.1:8080
}

找到http内的server属性,将其修改成以下属性

server {
listen 80;
server_name django_project;
charset utf-8;
location /static {
autoindex on;
alias /root/django_project/static;
}
location / {
uwsgi_pass 127.0.0.1:8080;
include uwsgi_params;
include /etc/nginx/uwsgi_params;
uwsgi_param UWSGI_SCRIPT iCourse.wsgi;
uwsgi_param UWSGI_CHDIR /iCourse;
index index.html index.htm;
client_max_body_size 35m;
index index.html index.htm;
}

最终修改后文件如下:

keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name django_project;
charset utf-8;
location /static {
autoindex on;
alias /root/django_project/static;
}
location / {
uwsgi_pass 127.0.0.1:8080;
include uwsgi_params;
include /etc/nginx/uwsgi_params;
uwsgi_param UWSGI_SCRIPT iCourse.wsgi;
uwsgi_param UWSGI_CHDIR /iCourse;
index index.html index.htm;
client_max_body_size 35m;
index index.html index.htm;
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2;
# listen [::]:443 ssl http2;
# server_name _;
# root /usr/share/nginx/html;
#
48,1 58%

新建uwsgi_config.ini文件, 并输入以下内容

[uwsgi]
socket = 127.0.0.1:8080 #此处的8080端口需要和nginx配置文件中定义的uwsgi_pass端口一致
chdir = /pyWorker/django_project/ #指定项目目录,本示例中为/pyWorker/django_project/,根据项目修改
wsgi-file = django_project/wsgi.py #指定Django's wsgi file文件,根据项目修改
processes = 4 #最大工作进程
threads = 2 #每个工作进程processes启动后开启的线程个数
vacuum = true #环境退出时自动清理
buffer-size = 65536 #设置用于uwsgi包解析的内部缓存区大小为64k,默认是4k

上述内容配置完成后通过指令ystemctl restart nginx重启Nginx ,

在项目目录执行命令uwsgi --ini uwsgi_config.ini,启动uWSGI

此时再次在浏览器中输入http://<公网IP>,访问相关Django页面,效果如下


总结

本文深入探讨了如何在华为云EulerOS操作系统上,利用Flexus X实例高效快速地部署Django服务。通过详细的分析和实际操作步骤,文章展示了华为云平台强大的兼容性和Flexus X实例的高性能,为开发者提供了一条高效、便捷的Django部署之路。实践证明,华为云EulerOS与Flexus X实例的完美融合,不仅大幅提升了开发效率,还为企业节省了成本,为云计算领域的发展提供了有力支持。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
威少6中4得到8分9板8助2断6失误 第三节搞崩CC和斯图尔特心态

威少6中4得到8分9板8助2断6失误 第三节搞崩CC和斯图尔特心态

直播吧
2024-12-29 12:36:21
李贵森亲述他与刘晓庆的知青生活:王永芳要了她,是担了大风险的

李贵森亲述他与刘晓庆的知青生活:王永芳要了她,是担了大风险的

拙言问史
2024-07-14 22:15:01
四川南充一女童从13楼坠下,物业工作人员称系装修工人之女

四川南充一女童从13楼坠下,物业工作人员称系装修工人之女

澎湃新闻
2024-12-28 11:12:05
歌手孙悦参观靳羽西上海豪宅,77岁靳羽西罕见亮相,豪宅排场大气

歌手孙悦参观靳羽西上海豪宅,77岁靳羽西罕见亮相,豪宅排场大气

喜欢农家生活的阿律
2024-12-28 09:51:43
中小银行隐秘加息:存款年利率最高可超7%

中小银行隐秘加息:存款年利率最高可超7%

极目新闻
2024-12-29 08:43:32
曝黄有龙婚内出轨女家教,三婚生子扶正小三,赵薇争到女儿抚养权

曝黄有龙婚内出轨女家教,三婚生子扶正小三,赵薇争到女儿抚养权

娱站
2024-12-28 22:56:47
国产之光DeepSeek把AI大佬全炸出来了!53页论文技术细节大公开

国产之光DeepSeek把AI大佬全炸出来了!53页论文技术细节大公开

量子位
2024-12-27 12:40:25
人到晚年,退休金再高,也别给子女这3种钱,这不是抠门,是清醒

人到晚年,退休金再高,也别给子女这3种钱,这不是抠门,是清醒

娱乐洞察点点
2024-12-28 13:46:53
很高效!布朗尼上半场6中3砍下13+5+4!频造杀伤罚球线得到6分!

很高效!布朗尼上半场6中3砍下13+5+4!频造杀伤罚球线得到6分!

直播吧
2024-12-29 09:14:19
比亚迪起诉龙猪判决结果出炉,比亚迪获得201.87万赔偿

比亚迪起诉龙猪判决结果出炉,比亚迪获得201.87万赔偿

映射生活的身影
2024-12-27 14:48:12
社会大哥的绰号有多反差?

社会大哥的绰号有多反差?

不相及研究所
2024-12-27 22:15:16
如果孩子厌学,内驱力不足,家长一定要带孩子看这两部高分纪录片!

如果孩子厌学,内驱力不足,家长一定要带孩子看这两部高分纪录片!

阿呆爸
2024-12-21 19:05:15
日本怎么能在中国建这么多学校,是谁给他们的权利?答案来了

日本怎么能在中国建这么多学校,是谁给他们的权利?答案来了

美居说说
2024-12-26 09:02:06
于晓光时隔1年赴韩,秋瓷炫不肯说新住址,儿子向着爸爸要回中国

于晓光时隔1年赴韩,秋瓷炫不肯说新住址,儿子向着爸爸要回中国

八怪娱
2024-12-28 15:52:36
网传玺尚酒店一女孩被多位武行轮奸,遭泄露视频炫耀,知情人发声

网传玺尚酒店一女孩被多位武行轮奸,遭泄露视频炫耀,知情人发声

古希腊掌管松饼的神
2024-12-28 22:37:37
菲律宾6名中国公民遭4歹徒持枪入室抢劫!抢走现金后将一男子强行绑走,现场监控曝光

菲律宾6名中国公民遭4歹徒持枪入室抢劫!抢走现金后将一男子强行绑走,现场监控曝光

FM93浙江交通之声
2024-12-28 15:41:11
“客有四不请”:请客吃饭千万别叫这4种人,关系再好也不行

“客有四不请”:请客吃饭千万别叫这4种人,关系再好也不行

诗词中国
2024-12-28 14:06:02
去了一趟山姆我才知道的6个事实,月薪3500的我,已经不配逛超市

去了一趟山姆我才知道的6个事实,月薪3500的我,已经不配逛超市

小谈食刻美食
2024-11-12 21:08:41
冯唐:一个人如果想有大出息,一定做到这九字箴言:不要急,不..

冯唐:一个人如果想有大出息,一定做到这九字箴言:不要急,不..

清风拂心
2024-12-28 15:15:03
广州一女子纯素颜相亲 男嘉宾嫌长得丑都躲着她:别人不要 我也不要

广州一女子纯素颜相亲 男嘉宾嫌长得丑都躲着她:别人不要 我也不要

娱乐洞察点点
2024-12-29 00:03:21
2024-12-29 12:48:49
无线端
无线端
聚焦移动端发展趋势
1714文章数 9188关注度
往期回顾 全部

科技要闻

理想和问界今年卖爆,但明年竞争更激烈

头条要闻

韩国起火客机上乘客曾发消息:一只鸟卡在机翼里

头条要闻

韩国起火客机上乘客曾发消息:一只鸟卡在机翼里

体育要闻

被同一支球队裁掉5次 我还能继续打NBA吗

娱乐要闻

哭麻!赵露思好友发文,抢救、失语,还有隐情

财经要闻

什么情况?中小银行存款利率超7%

汽车要闻

“合”而不同 领克与极氪的向上一跃

态度原创

亲子
数码
旅游
本地
公开课

亲子要闻

90后宝妈带娃,主打松弛,用魔法打败魔法

数码要闻

研究:苹果、谷歌、三星等智能手表表带中含高浓度有毒化学物质

旅游要闻

供需两旺!冰雪“冷”资源助燃“热经济”

本地新闻

好吃潮州|尝一口,这里的美食有点“潮”

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版