阿里云Linux服务器以Nginx+uWSGI部署Django项目教程
前言:本教程适用于以Windows和Linux系统环境开发Django项目的初学者,帮助其将第一个Django项目部署上线,同时包含了一部分的DeBug方案,供其参考。
-作者本地环境是Django2.0+Python3.8.3+Sqlite,以virtualenv在本地建立的虚拟环境。
-作者Web代理服务器使用的是uWSGI,反向代理Web服务器使用的是Nginx。
-本教程仅适用于Linux及其衍生系统的服务器,不适用Windows系统的服务器(因为Windows系统不支持uWSGI,根据各种教程进行了尝试,很难强行安装)。
-本教程系参考网上各类经验帖总结归纳,但截止本教程发布前,作者参照其它相关经验教程进行配置均宣告失败,可能由于其他经验贴的发布年限较早,同时本身存在错误。目前仅B站Up主“再敲一行代码”的配置视频实测可行,特此感谢up主,推荐初学者参考。也欢迎关注个人WX订阅号“昜境”会有更多案例分享。
部署项目前提:你的Django项目已在本地测试可行,所有开发过程中的bug都已解决。关于Django Web应用开发的学习,推荐参考《Python编程:从入门到实践》Eric Matthes著,内容详细且有中文译本,但是书中使用的Django版本是已经过时的1.8版本,导致参考教程学习时会遇到不少坑,有这方面问题的可以参考作者的关于学习这本教材的帖子。
第一步 购买并配置阿里云服务器,安装SFTP/FTP传输应用客户端XFTP
1. 服务器的选择与设置
作者购买的是ECS阿里云服务器,配置选的是2 vCPU内存1 GiB系统盘40GiB,系统选的是Ubuntu 20.04 64位,服务器的配置基本够初学者配置项目使用,服务器位置选最优惠的地区的话,基本上每个月的租金可以控制在50元以下,如果还是学生身份,可以申请免费的最低配置服务器。在服务器系统的选择上,基本秉持与本地开发环境保持一致的原则。
对于本地开发环境是Windows系统的初学者,不建议服务器也选择Windows系统,除了上文已经提到的无法安装uWSGI的问题,还需要考虑到网上可以找到的教程都是基于Linux及其衍生系统的服务器的,初学者很难找到合适的Windows系统的教程。
配置服务器时,记住设置的用户名和其相应密码,进行远程连接和文件传输时都需要用到,Linux系统用户名一般默认是root,Windows默认是Administrator。
配置服务器时,还会要求你设置安全组配置,即设置开放的端口,如果错过这一步,也可以在实例控制台选择安全组策略再次进行设置。一般默认开放的端口有22/22、3389/3389、-1/-1、80/80与443/443,在此我们额外设置一个服务器端口8005/8005,在之后配置Nginx与uWSGi时会用到,如果之后配置时显示该端口已经被占用,就把最后一位数字修改一下切换一个端口,或直接把占用了这个端口的进程用指令关闭。
>>>Tip1 已购买的服务器更换系统:如果你已经购买了Windows系统的服务器,想要切换其它系统,你不一定需要再买一个新的服务器,在实例控制台停止服务器运行,点击“管理”键,可以在服务器系统一栏直接选择更换系统,但是更换系统会初始化服务器系统盘,请提前做好备份。<<<
2. 安装XFTP客户端并上传项目文件
完成以上步骤后,便是下载SFTP/FTP传输应用客户端XFTP,阿里云虽然可以远程连接服务器,但是只能无法进行文件传输,我们需要通过XFTP将我们的项目文件上传至服务器。访问官网https://www.netsarang.com/products/xfp_overview.html,输入姓名和邮箱,个人用户可以免费使用。
安装完成后,进入XFTP界面,新建会话,“主机”一栏填写你购买服务器的公网IP,“传输协议”保持默认SFTP,在“用户名”和“密码”一栏填写你在设置服务器时的内容,点击确定后就连接了服务器,可以将你的项目文件夹直接拖动到服务器系统盘,建议放在/home/根目录下。
>>>Tip2 使用远程桌面连接Windows服务器上传文件:由于传输协议不同,Windows服务器不可使用XFTP,我们可以通过Windows系统自带的远程桌面功能进行服务器控制和文件传输。
-windows+R打开运行,输入mstsc打开远程桌面连接窗口。
-“计算机“栏输入Windows服务器公网IP,“用户名”输入配置服务器设置的用户名,Windows系统用户名一般为“Administrator”。
-打开“本地资源“,点击”选项“,再点击”详细信息“,选择你要共享的盘符,即你文件的所在盘。
-点击“确定“&#x