阿里云服务器部署Django项目(Linux服务器、宝塔、纯新手、亲测有效!)(Nginx+uWSGI)

1 篇文章 0 订阅
1 篇文章 0 订阅

阿里云服务器部署Django项目(Linux服务器、宝塔、纯新手)

要是有问题欢迎在评论区留言,我会尽量帮你解决⸜₍๑•⌔•๑ ₎⸝

1. 前言 🚲

最近产生了搭建个人网站的想法,能发表一些观点和想法(Blog),也可以用来和他人交流,同时配置好的服务器也能用来进行一些项目,NICE👍

在使用Linux服务器之前,购买过阿里云的Windows服务器,不得不说其配置比较 “繁琐”(更可怜的是,配置了好几天结果还是失败了)听说Linux服务器配置更加简单,所以产生了使用Linux服务器试试看的想法(反正阿里云可以更改服务器的系统 🤣)

谁想到…使用Linux服务器后仅仅使用了一个上午就配置成功了!!!🎉🎉🎉
(所以没有使用过Linux服务器的大家不用慌张~)

由于个人原因,比较熟悉Django框架,所以这里主要是谈一下配置Django项目到阿里云服务器的整个流程

特此记录在这里帮助有同样需求的人,炫耀一下,也方便自己后续添加正式项目(哈哈哈)

2. 服务器购买和初步搭建🛵

2.1 购买服务器

  1. 点击红框处购买服务器

点击这里购买服务器

  1. 特别注意购买页面中选择CentOS 7.x镜像(当然其它Linux内核的系统也可、购买细节参考官方论坛)-- 记得购买时设置的密码用户名!!!
    在这里插入图片描述
    Tips: 如果已有WIndow Server服务器(或者买错了),可以更改服务器镜像,具体注意事项详见:这篇博客

2.2 初步搭建服务器

  • 购买或者更改完成后,进入到阿里云控制台,找到刚刚创建的实例(ECS)点击远程连接
    在这里插入图片描述

  • 登陆后我们先安装宝塔,参照博客或者官方教程
    在这里插入图片描述
    简单来说就是使用安装命令(2021-04-14)

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
    

    然后在本地打开对应的面板页面进行安装所需软件
    这里体现出了宝塔面板的好处,无需自己下载配置Nginx,在安装宝塔面板时可以自动完成安装与配置

  • 配置Python项目管理器

    • 进入宝塔面板软件商店,搜索 Python项目管理器 并安装,选中首页显示即可在首页看到管理器。Alt
    • 安装完成后点击Python项目管理器的设置->版本管理->安装Python版本(此处我安装的是3.7.9)

3.本地Django项目设置 🏍

3.1 本地虚拟环境导出

每个项目都有一个自己的虚拟环境,这也是做Python的几乎所有项目的特点,这样做可以便于在新的机器上安装所需的环境。
在上传本地的Django项目之前,首先要:

  • 激活当前项目的虚拟环境
    例如:
	# 这里在Windows的CMD中,virtualenv
	E:\Pycharm\Chinese_Seal>cd venv  #进入项目中虚拟环境所在文件夹
	E:\Pycharm\Chinese_Seal\venv>Scripts\activate #激活虚拟环境
	(venv) E:\Pycharm\Chinese_Seal\venv> #出现了前面的()表明成功激活
# 或者在Git Bash里
$/e/Pycharm/Chinese_Seal $ cd venv/
$/e/Pycharm/Chinese_Seal/venv $ . Scripts/activate
$(venv) /e/Pycharm/Chinese_Seal/venv $
  • 激活成功后,导出当前项目依赖环境到requirements.txt
# 这里在Windows的CMD中,virtualenv
(venv) E:\Pycharm\Chinese_Seal\venv>pip freeze > requirements.txt
# 在GitBash中,virtualenv
$(venv) /e/Pycharm/Chinese_Seal/venv $ pip freeze > requirements.txt

3.2 收集静态文件

静态文件也就是css之类的网页文件

  • 首先要修改项目中的settings.py
STATIC_URL = '/static/'
# STATICFILES_DIRS = (
#     os.path.join(BASE_DIR, 'static'),
# )
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
  • 然后收集静态文件
python manage.py collectstatic

这样就会把项目中的所有静态文件放到项目根目录下的static文件夹中

3.3 别忘了!

以防大家忘记,特地提醒一下:settings.py中

Debug = False #不开启Debug模式
Listen = ['*'] #所有IP均可以访问
'''(此处有疑问:是否设置为服务器端的公网IP也可以, 尚未测试)'''

4.上传项目并配置服务器🚗

4.1 项目文件夹打包上传到服务器

!!! 一定要打包上传,不然特别慢…

上传到如图所示的路径: www/wwwroot/
然后直接解压
在这里插入图片描述

4.2 项目部署**

  • 打开python项目管理器,点击“添加项目”,进行相关配置(uwsgi选择即可完成配置)

在这里插入图片描述

  • 各个项目:
    • 项目名称:显示在Python项目管理器中的名称,没有特别要求。
    • 路径:选择项目文件夹,即第二步上传项目解压后的文件夹。
    • Python版本:可使用系统默认的Python版本即可。
    • 框架:选择Djaogo框架 (Python是否可以?)
    • 启动方式:有gunicorn和uwsgi两种选择,启动后会在项目中增加不同的配- 置文件,这里我们使用uwsgi.
    • 启动文件/文件夹:选择Django项目配置文件夹下的wsgi.py(配置文件夹即settings.py所在的文件夹)
    • 端口:选择一个端口号(若已在安全组中开放,则可直接通过这个端口号,访问项目)

4.3 配置uwsgi

  • 这一步骤十分重要,如果配置不好就会出现’Internal Server Error’。
  • 可以点击Python管理器项目的 ‘配置’ 进行修改,也可以找到这个在项目中的uwsgi文件,在文本编辑中进行修改,修改后会自动同步到 ‘配置’ 选项卡里。
'''记得改成自己的项目文件夹名称!!!'''
[uwsgi]
master = true
processes = 1
threads = 2
chdir = /www/wwwroot/test_DjangoServer '''这里'''
wsgi-file= /www/wwwroot/test_DjangoServer/test_DjangoServer/wsgi.py'''这里'''
http = 0.0.0.0:8201 '''监听端口'''
logto = /www/wwwroot/test_DjangoServer/logs/error.log '''报错可查看这里'''
chmod-socket = 660
vacuum = true
master = true
max-requests = 1000
static-map = /static=/www/wwwroot/test_DjangoServer/static '''这一行添加'''
  • 当完成上述步骤后,在Python项目管理器中点击运行项目
    在这里插入图片描述
    开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!
    开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!
    开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!

4.4 开启映射(反向代理)

  • 如果你有域名可以使用映射来让域名访问指定到某个项目,如果你没有域名也可以设置映射(虽然我觉得没有啥必要…)
  • 设置原因:如果你有一个域名,就可以通过反向代理,通过IP(不用带端口)或者域名访问。
  • 在Python项目管理器中找到项目,点击映射,输入域名。(有时会显示添加失败,但是打开宝塔面板的 ‘网站’ 选项,还是能看到这个映射后的站点,我使用时并没有影响)。
  • 反向代理设置:参考博文
    在这里插入图片描述

4.5 静态文件路径

在这里插入图片描述

  • 点击网站,找到刚刚建立的站点,点击站点名>配置文件,添加如图所示信息
# '''记得改成自己的文件路径'''
location ^~ /static/ {
        root /www/wwwroot/test_DjangoServer/;
 }
  • 你也可以在这里添加额外的域名以及其对应的端口
    在这里插入图片描述
  • 完成后把Python管理器中的项目重启一下,站点也重启一下~
  • 补上坑,大家记得在阿里云上的安全组中进行配置,开放你设置的端口(如何配置阿里云安全组在前面宝塔安装的部分的链接中有介绍!)

OK!搞定!已经可以用域名或者IP地址访问了!🎊🎊🎊

5.域名相关 🏎

  • 可能人要问域名怎么购买,怎么配置
  • 这里我大约说一下:
    1. 在阿里云上购买域名(有一些手续,可以查看阿里云中的帮助文档
    2. 购买完成后记得在控制台里设置云解析(将域名与你的IP地址对应)
    3. 你还需要备案!!!
    4. 备案完成后记得在阿里云上购买ssl(按照购买时的步骤将ssl与域名关联)
    5. 将你的域名加入到服务器刚刚配置的站点中(详见上文)
    6. 在宝塔面板的站点中,点击对应站点的设置-ssl,从阿里云的ssl控制台上下载对应的证书进行配置:参考博文

==问题:反向代理作用==
这里是当前我能够记起来的所有配置过程啦!如果大家有什么问题欢迎留言呀~~(如果有大佬能够补充一下就更好啦!😂)

END(撒花🎊🎉🎊🎉)

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Linux系统上部署Django + nginx + uWSGI的步骤如下: 1. 安装必要的软件 在Linux系统上安装必要的软件包,包括Python、pip、nginxuWSGI等。 2. 创建Django项目 使用Django创建一个新项目或使用现有的Django项目。 3. 配置uWSGIDjango项目的根目录下创建一个uwsgi.ini文件,用于配置uWSGI。示例配置如下: ``` [uwsgi] # 指定运行模式为WSGI http = :8000 # 指定Django应用的wsgi模块 wsgi-file = myproject.wsgi # 指定进程数 processes = 4 # 指定线程数 threads = 2 # 指定静态文件路径 static-map = /static=/path/to/static # 指定日志路径 logto = /path/to/logfile ``` 其中,http参数指定了监听的端口号,wsgi-file参数指定了Django应用的wsgi模块,processes参数指定了进程数,threads参数指定了线程数,static-map参数指定了静态文件的路径,logto参数指定了日志文件的路径。 4. 配置nginxnginx的配置文件中添加以下内容: ``` server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; } location /static { alias /path/to/static; } } ``` 其中,server_name指定了域名,access_log和error_log指定了日志文件的路径,uwsgi_pass指定了uWSGI的地址和端口号,include指定了uWSGI的参数。 5. 启动uWSGI服务 使用以下命令启动uWSGI服务: ``` uwsgi --ini uwsgi.ini ``` 6. 启动nginx服务 使用以下命令启动nginx服务: ``` sudo service nginx start ``` 这样就完成了Django + nginx + uWSGI部署。可以通过访问该网站的域名来验证是否部署成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值