Centos8下django项目部署 nginx+uwsgi的教程

下面我将为您介绍Centos8下Django项目部署Nginx+Uwsgi的完整攻略。本文分为以下几个部分:

  • 安装和配置Nginx
  • 安装和配置Uwsgi
  • 部署Django项目

安装和配置Nginx

  1. 安装Nginx

您可以使用以下命令来安装Nginx:

sudo dnf install nginx
  1. 配置Nginx

通过编辑Nginx的配置文件来配置Nginx。打开配置文件:

sudo vi /etc/nginx/nginx.conf

找到“http {}”块,在该块中添加以下配置:

upstream django_server {
    server unix:///path/to/your/mysite/mysite.sock;
}

server {
    listen 80;
    server_name your_domain.com;

    location / {
        uwsgi_pass django_server;
        include uwsgi_params;
    }
}

在上面的配置中,您需要将“/path/to/your/mysite/mysite.sock”替换为您自己的Django项目的socket文件路径,“your_domain.com”替换为您自己的域名。这里的“upstream”指令定义了Uwsgi服务器的地址和端口。

  1. 启动Nginx

配置完成后,通过以下命令启动Nginx:

sudo systemctl start nginx

安装和配置Uwsgi

  1. 安装Uwsgi

您可以使用以下命令来安装Uwsgi:

sudo dnf install uwsgi uwsgi-plugin-python3
  1. 创建Uwsgi配置文件

创建一个Uwsgi配置文件,并设置它的路径:

sudo vi /etc/uwsgi.d/mysite.ini

将以下内容添加到文件中:

[uwsgi]
chdir=/path/to/your/mysite
module=mysite.wsgi:application
master=True
processes=4
socket=/path/to/your/mysite/mysite.sock
chmod-socket=666
vacuum=True

在上面的配置中,“chdir”指令设置要使用的Django项目的根目录,“module”指令设置wsgi应用程序的名称,并且后面的值应该是“模块名.应用名:对象名”。其中,“应用名”是您的Django项目名,“对象名”是wsgi.py文件中的一个对象,“socket”指令定义了应用程序绑定的socket文件。

  1. 启动Uwsgi

通过以下命令启动Uwsgi:

sudo systemctl start uwsgi

部署Django项目

  1. 安装Django

使用pip安装Django:

sudo dnf install python3-pip
sudo pip3 install django
  1. 创建Django项目

创建Django项目:

django-admin startproject mysite
  1. 创建Django应用

创建Django应用:

cd mysite/
python3 manage.py startapp myapp
  1. 编辑Django应用的view.py
vi myapp/views.py

添加以下内容:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")
  1. 配置Django路由

在Django项目内的mysite/urls.py文件中加入以下内容:

from django.urls import path
from myapp import views

urlpatterns = [
    path('', views.index, name='index'),
]
  1. 测试Django项目

执行以下命令启动Django项目:

python3 manage.py runserver

在浏览器中输入"http://localhost:8000/myapp",应该看到“Hello, world. You're at the polls index.”。

  1. 修改Django项目配置

修改Django项目配置,以便使应用程序绑定到Uwsgi的socket文件。

mysite/settings.py中添加以下内容:

ALLOWED_HOSTS = ['your_domain.com']

mysite/settings.py中添加以下内容:

STATIC_ROOT = '/path/to/your/mysite/static'

mysite/urls.py中添加以下内容:

from django.conf.urls.static import static
from django.conf import settings

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  1. 重启服务器

重启Nginx和Uwsgi:

sudo systemctl restart uwsgi
sudo systemctl restart nginx

现在应该可以在浏览器中访问"https://your_domain.com/myapp",并看到“Hello, world. You're at the polls index.”。

以下是一个具体的示例:

  • 假设已经安装了Nginx、Uwsgi和Django。
  • 项目文件路径为“/root/myproject”。
  • 域名为“your_domain.com”。

首先,我们需要配置Nginx。

sudo su  # 切换到root用户
vi /etc/nginx/nginx.conf

在配置文件中添加:

upstream django_server {
    server unix:///root/myproject/myproject.sock;
}

server {
    listen 80;
    server_name your_domain.com;
    charset utf-8;
    client_max_body_size 128M;

    location /static {
        alias /root/myproject/static;
    }

    location /media {
        alias /root/myproject/media;
    }

    location / {
        uwsgi_pass django_server;
        include /etc/nginx/uwsgi_params;
    }
}

注意:这里将静态文件和媒体文件的路径都设置了,并且在Nginx配置中也需要做相应的修改。

然后,我们需要配置Uwsgi。

cd /etc/uwsgi.d/
vi myproject.ini

添加以下内容:

[uwsgi]
chdir=/root/myproject
module=myproject.wsgi:application
master=True
pidfile=/root/myproject/myproject_uwsgi.pid
processes=4
socket=/root/myproject/myproject.sock
chmod-socket=666
vacuum=True
max-requests=5000

接着,我们需要将Django的静态文件收集到STATIC_ROOT指定的目录中。

cd /root/myproject
python3 manage.py collectstatic

最后,我们需要重启Nginx和Uwsgi。

systemctl restart uwsgi
systemctl restart nginx

现在,我们可以在浏览器中输入"http://your_domain.com"来访问Django项目了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos8下django项目部署 nginx+uwsgi的教程 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • linux 搭建FTP服务

    1、安装FTP服务 yum -y install ftp  2、安装vsftpd 服务 yum install vsftpd -y  3、创建用户并设置密码 useradd ftptest echo “ftptest@123” |passwd –stdin ftptest  4、创建一个供 FTP 服务使用的文件目录   mkdir /var/ftp/te…

    Linux 2023年4月12日
    00
  • Redhat linux DNS配置指南(SCANIP配置手册)

    在oracle 11g的RAC中增加了SCAN IP,而使用 SCAN IP的一种方式就是使用DNS,这里介绍在Redhat Linux 5.4中DNS的详细配置操作在配置DNS之前修改主机名Redhat linux 5.4 DNS配置操作在配置DNS之前修改主机名 [root@beiku1 etc]# hostname beiku1.sbyy.com [r…

    Linux 2023年4月11日
    00
  • CentOS 7.2安装Nginx 1.10.2的详细教程

    下面是详细的CentOS7.2安装Nginx1.10.2的完整攻略,分为以下几步: 步骤一:安装必要的依赖包 在安装Nginx之前,需要先安装一些必要的依赖包。通过以下命令,可以安装所需的依赖包: sudo yum install gcc pcre-devel openssl-devel zlib-devel 步骤二:下载Nginx 从官方网站下载最新版本的…

    Linux 2023年5月14日
    00
  • Linux xauth命令

    Linux xauth命令用于管理X服务器的认证信息,允许其他用户连接当前X服务器,并在X服务器上运行他们自己的窗口管理器、应用程序等。 命令格式 xauth [options] [command [args…]] 命令选项 -v: 输出详细信息 -f filename: 以指定的文件名读取xauth信息 -q: 静默模式 -b: 内部添加 -n: 不添…

    Linux 2023年3月28日
    00
  • Linux用户空间与内核地址空间

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。 …

    Linux 2023年4月11日
    00
  • Linux:进程模型和进程管理

    在Linux系统中,执行一个程序或命令就可以触发一个进程,系统会给予这个进程一个ID,称为PID,同时根据触发这个进程的用户与相关属性关系,基于这个PID一组有效的权限设置。举个常见的例子,我们要操作系统的时候通常是利用ssh连接程序或直接在主机上登录,然后获取shell。默认的shell是bash,对应的路径为/bin/bash,那么同时间的每个人登录都是…

    Linux 2023年4月13日
    00
  • centos下安装VMware Server 虚拟机的方法

    下面是CentOS下安装VMware Server虚拟机的方法攻略: 前置条件 CentOS系统环境需要具备sudo命令,而非root用户执行安装操作时需要提供sudo权限; 确认系统内核版本号,安装VMware要求使用2.6.32及以上版本的Linux内核。可以使用以下命令查看内核版本号: uname -r 步骤 1. 安装VMware Server所需环…

    Linux 2023年5月24日
    00
  • VMware Workstation下安装Linux教程(图文)

    让我详细讲解“VMware Workstation下安装Linux教程(图文)”的完整攻略。 VMware Workstation下安装Linux教程 简介 VMware是一款虚拟机软件,可以在一台物理计算机上运行多个操作系统。在VMware Workstation中,您可以使用虚拟机来运行Linux系统。Linux作为一种强大的开源操作系统,可以用于服务器…

    Linux 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部