Huawei Cloud EulerOS
Huawei Cloud EulerOS
- 最新动态
- 服务公告
- 产品介绍
- 用户指南
-
常见问题
- CentOS Linux停止维护后如何应对?
- 华为云针对CentOS EOL有没有迁移方案?
- 如何安装mlnx驱动?
- 如何开启HCE操作系统的SELinux功能?
- 迁移系统后,如何更改控制台操作系统名称?
- Huawei Cloud EulerOS、openEuler和EulerOS镜像的主要区别是什么?
- 如何打开内核wireguard模块以及安装wireguard-tools?
- 如何将docker工具的用户凭证保存方式配置成与社区一致?
- OOM相关参数配置与原因排查
- IPVS报错问题说明
- 中文环境执行sulogin命令终端显示乱码说明
- ECS开启IPv6后,HCE系统内无法获取到IPv6地址
- 如何设置自动注销时间TMOUT?
- 最佳实践
- 文档下载
- 通用参考
链接复制成功!
部署Django服务
简介
Django是一个开源的Web应用框架,使用Python语言编写,主要用于搭建Web项目。本教程介绍如何在HCE 2.0中使用Nginx+uWSGI部署Django项目。
准备工作
- 准备一台ECS, 并分配公网IP或者弹性公网IP(EIP)。
- 安全组入方向已放开80、8001、8002端口。
操作步骤
- 安装Nginx服务。
- 执行以下命令Nginx。
dnf install nginx
- 执行以下命令启动Nginx服务。
systemctl start nginx
- 执行以下命令查看Nginx服务状态。
systemctl status nginx
如果显示active (running),则表示启动成功。
- 执行以下命令Nginx。
- 安装uWSGI服务。
- 执行以下命令安装相关依赖。
dnf install python3-devel gcc
- 执行以下命令安装uWSGI。
pip install uwsgi
- 执行以下命令查看uWSGI版本号。
uwsgi --version
- 编辑hello.py文件,并输入以下内容。
def application(env, reply): reply('200 ok',[('Content-Type','text/html')]) return [b"Hello!"]
- 执行以下命令启动uWSGI服务。
uwsgi --http :8001 --wsgi-file hello.py
- 在浏览器中输入网址: http://<公网IP>:8001访问上述服务,效果如下图。
- 执行以下命令安装相关依赖。
- 安装Django环境
- 配置环境。
- 编辑django_project/settings.py文件。
- 在文件开头输入以下语句引入os库。
import os
- 然后在文件末尾添加以下参数。
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
- 再执行以下命令收集所有静态文件。
sudo python manage.py collectstatic
执行以后输出类似如下。
[root@hce2 django_project]# sudo python manage.py collectstatic 125 static files copied to '/root/django_project/static'.
此时项目目录就会多一个static文件夹,项目结构如下。
[root@hce2 django_project]# ls db.sqlite3 django_project manage.py static
- 在文件开头输入以下语句引入os库。
- 编辑/etc/nginx/nginx.conf文件,配置nginx。
- 找到http属性,新增以下内容。
upstream django { server 127.0.0.1:8001; }
- 找到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:8001; 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; }
最终效果如下。
- 找到http属性,新增以下内容。
- 在项目目录新建uwsgi_config.ini文件,并输入以下内容。
[uwsgi] socket = 127.0.0.1:8001 #此处的8001端口需要和nginx配置文件中定义的uwsgi_pass端口一致 chdir = /root/django_project/ #指定项目目录,本示例中为/root/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
注意:
实际环境中,请删掉配置文件中的日志。
- 编辑django_project/settings.py文件。
- 验证。
以上相关配置仅用于测试演示,业务环境请谨慎使用。