在现在云计较和大数据的时期,时期的迭代更新为企业带来了无穷可能。华为云,四肢国内最初的云就业提供商,历久勤劳于于激动时期逾越,为开导者提供更高效、更方便的就业体验。本次828华为云征文行动,咱们将眼神聚焦于华为云EulerOS操作系统与Flexus X实例的深度会通,磋商如安在这一重大组合下结束Django就业的快速部署。本文将带你恍悟华为云的时期魔力,解锁高效部署新姿势插死他综合网,助力你的业务迅速发展。
什么是Django?Django是一个高档的Python Web框架,它饱读吹快速开导和干净、实用的蓄意。Django相宜各式类型的Web应用开导,包括内容管理系统、电子商务平台、外错乱聚等。对于从业于py开导的东谈主员是一个必须要掌合手的一门框架, 本篇博客咱们将探索华为云EulerOS与Flexus X实举例和部署Django
搜检镜像信息土产货畅通就业器之后输入指示 lsb_release -a 搜检镜像信息
张开剩余93%从镜像信息中咱们不错看到咱们使用的镜像是Huawei Cloud EulerOS, 本次测评亦然需要在该镜像下进行。
购买就业器对于Flexus X实例的购买以及关系建设不错参考我之前的著述
https://ruocheng.blog.csdn.net/article/details/141748572
操作才气装置Nginx 引申号令dnf install nginx 装置Nginx, 如下图所示,在装置nginx 时报错信息中提到建设中忽略了nginx ,咱们接下来建设该问题 建设nginx 被忽略的问题怒放/etc/dnf/dnf.conf文献,查验是否有以下访佛的排斥行:exclude=nginx 如下图所示
建设文献中如实有忽略nginx 的方位, 因此咱们需要将该忽略的nginx 删除并保存, 然后再行装置即可, 如下图所示
启动Nginx输入指示systemctl start nginx来启动nginx 就业
搜检Nginx 就业现象输入指示systemctl status nginx搜检Nginx就业现象,如下图所示
装置uWSGI就业 装置关系依赖引申指示 dnf install python3-devel gcc装置关系依赖,
我这里之前仍是装置过了,因此是如下领导, 若是莫得装置过的话,引申该指示是当年装置的
装置uWSGI并搜检版块号输入指示 pip install uwsgi 装置uWSGI , 通过指示 uwsgi --version 来搜检版块号
创建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')]
启动uWSGI就业通过指示 uwsgi --http :8080 --wsgi-file test.py 来启动就业, 并在浏览器中输入彀址 http://<公网IP>:8080探听就业
防范: 8080 端口需要再安全组进口标的怒放
装置Django环境 装置Django引申号令 pip install Django来装置 Django
起初化神气引申指示 python -m django startproject django_project起初化Django 神气
裁剪建设文献干预神气目次,裁剪建设文献django_project/settings.py,找到ALLOWED_HOSTS属性修改成如下值
ALLOWED_HOSTS = ["*"]
启动django就业输入指示 python manage.py runserver 0.0.0.0:8080 来启动django 就业,
防范8080 端口需要再安全组进口标的怒放
着力展示浏览器中输入彀址http://<公网IP>:8080探听上述就业
建设环境裁剪django_project/settings.py文献,改写成如下内容
AUTH_PASSWORD_VALIDATORS = [
<{p> 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
}插死他综合网,
<{p> 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
<{p> 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
<{p> '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 <{p> server 127.0.0.1:8080
}
找到http内的server属性,将其修改成以下属性
server <{p> listen 80;
server_name django_project;
charset utf-8;
location /static <{p> autoindex on;
alias /root/django_project/static;
}
麻豆 女同location / <{p> 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 <{p> listen 80;
server_name django_project;
charset utf-8;
location /static <{p> autoindex on;
alias /root/django_project/static;
}
location / <{p> 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 <{p># 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实例的齐备会通,不仅大幅补助了开导着力,还为企业从简了本钱,为云计较领域的发展提供了有劲撑持。
发布于:河北省