Django服务器的部署(Nginx+uwsgi +Ubuntu)

概述

在本地开发好自己的一个Django项目之后,然后将其部署到服务器上面以便更多的人访问。

前期准备

部署网站,需要服务器和域名。两者缺一不可,我使用的阿里云的ECS云服务器,也是在阿里云上购买的域名。对于域名,如果没有特别用处的地方,可以自己根据自己的想法购买,名字之类的都可以,域名的后缀常见的是.com(公司),.org(组织),.gov(政府),.edu(教育),如果是作为自己的博客这种,可以使用比较好记的、简短的域名,比如io、xyz。总之域名是看自己的想法和项目的需求(做微信小程序的接口则需要.com的域名)。

对于服务器的选择,常见的服务器可以分为文件服务器、Web服务器、数据库服务器、邮件服务器等,如果是用于部署个人的Web项目选择Web服务器即可。然后考虑服务器的性能以及兼容性,在购买之前要确定要运行什么,负载量有多大,这样可以确定服务器的大概配置,包括CPU、内存、硬盘、带宽等,如果自己的网站包含了一些比较大的视频或者素材,那么带宽就必须要高一点儿,或者考虑第三方的服务,比如七牛云或者阿里云的对象云存储,可以快速访问,轻松帮我们解决问题。另外也要考虑到服务器的售后,如果有什么问题可以快速通过售后解决问题,这一点我觉得阿里云做的比较好,24小时技术支持。而且解决问题得速度也比较快,所以我选择的阿里云。另外还有重要的一点,服务器的操作系统,如果对于Linux服务器不太熟悉的情况下,还是老实的选择Windows系统,自己在部署和运维的时候比较方便,虽然大多数服务器都是采用的Linux,不熟悉用的时候就非常的不方便,什么命令还要百度查一下。

Ubuntu部署

安装Nginx。通过apt-get install nginx安装nginx。在Ubuntu上安装完Nginx之后,Nginx的所有配置文件都在/etc/nginx下,启动程序文件都在/usr/sbin/nginx下;日志文件在/var/log/nginx下,并且在/etc/init.d下创建了启动脚本:

    sudo /etc/init.d/nginx start #启动
    sudo /etc/init.d/nginx stop #停止
    sudo /etc/init.d/nginx restart #重启
 

安装UWSGI。通过apt-get install python-dev和pip install uwsgi安装。这里的大体流程是:Nginx作为服务器的最前端,负责接收Client的所有请求,统一管理。静态请求由Nginx自己处理。非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次Web请求。

Nginx+Uwsig+Django

配置uwsgi文件。uwsgi文件是将Uwsgi启动时的众多参数以配置文件的方式,然后即可通过配置文件启动uwsgi,而不用很长的命令去启动(这个文件放在与django项目中manage.py同一级下)。

其中chdir是指Django项目的全路径,socket是指django运行的端口号,module是指django创建时的uwsgi.py,即这里是指向这个文件。

配置Nginx。打开/etc/nginx/sites-enabled目录,并编辑nginx的配置文件default

以及静态文件的配置

然后重启Nginx服务以及UWSGI服务(uwsgi -d --ini uwsgi.ini)后台运行UWSGI服务。

上面的访问是指通过IP地址访问能够成功访问,如要配置域名访问,还需要在阿里云或者腾讯云上配置解析,包括域名的解析、安全组的配置、端口的设置等等然后才可以通过域名正常访问,如果需要HTTPS访问还需要申请CA证书,然后配置HTTPS的相关配置,这些弄完项目才算部署完成。

 

猜你喜欢

转载自blog.csdn.net/qq_35363507/article/details/104418160