把Django项目部署到阿里云服务器

把Django项目部署到阿里云服务器,第1张

把Django项目部署到阿里云服务器 基于python3(虚拟环境)+nginx+uwsgi+django

首先,需要查看自带的python是 哪个版本的,看项目基于哪个python开发的,来配置需要的python版本。

我的服务器 自带的是 python3

下面,就开始部署吧。

1. 安装虚拟环境

首先可以查看 pip --version,如果没有安装pip的话,先去安装pip
可以使用自带的yum去安装

$ yum install pip

apt-get 默认是没有安装的,如果想用apt-get,还需要去安装apt-get

$ apt-get install pip
使用 virtualenv
$ pip install virtualenv
$ pip install virtualenvwrapper

安装成功后,创建虚拟环境

$ cd /var/www
$ virtualenv venv

创建完成后,启动虚拟环境

$ cd venv
$ source bin/activate

把我们的项目文件上传到 venv 文件目录下,安装我们项目需要用到的模块

pip install ****

我这里用的mysql的数据库,在setting.py文件中设置好数据库的用户名密码,在项目中运行下迁移密令

python manage.py makemigrations
python manage.py migrate

如果你的项目用到mysqlclient的话,安装时候如果有下面的报错信息,需要安装Python 3 和 MySQL 开发头文件和库

$ yum install python3-devel mysql-devel

安装按成后,在安装mysqlclient就可以成功啦。

pip install mysqlclient

安装完成后,启动我们的项目
需要我们去服务器配置一下安全组,把8000端口设置下。

python manage.py runserver 0.0.0.0:8000

这时访问我们的ip地址,就可以成功的访问到我们的项目了

2. 安装nginx
$ yum install nginx

安装完成后,可以查看nginx状态,是否启动

$ systemctl status nginx.service

没有启动的话,把nginx启动。访问ip地址,你会看到这个页面

nginx 启动停止重启指令

$ systemctl start nginx.service
$ systemctl stop nginx.service
$ systemctl restart nginx.service
3.安装uwsgi
pip install uwsgi

安装成功后,可以做一个简单的小测试

$ vim /home/test.py
$ def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

文件创建完成后,我们运行文件。

$ cd /home
$ uwsgi --http 0.0.0.0:8000 --wsgi-file test.py

成功后,我们访问ip地址,就可以看到 hello Woeld 了

4. 配置项目

上面的步骤都已经成功的话,现在我们开始配置我们的项目

1. nginx配置

nginx安装成功后,安装目录在 etc/nginx。
我们需要在 etc/nginx/conf.d 中创建一个**.conf 文件

$ vim /etc/nginx/conf.d/project.conf

文件内容就是下面这段代码

server {
	      listen 8080 ;
	      server_name **.**.**.** ;
	      charset  utf-8;
	      # 指定项目路径uwsgi
	      location / {
	          include uwsgi_params;
	          uwsgi_pass 127.0.0.1:8015;
	      }
	      # 指定静态文件路径
	      location /static/ {
	          alias  /var/www/venv/project/static/;
	      }

}

listen 端口不能跟uwsgi_pass 端口一样,否则的话后面启动项目会报错,端口被占用

server_name 自己服务器公网IP地址;

static 自己Django项目的static路径;

uwsgi_pass 后面的 uwsgi配置会用到,他们需要保持一致

如果想了解更多的话,需要去 nginx 官网去学习学习。

重点

配置完后一定要重启,重启。

$ systemctl restart nginx.service
2. uwsgi配置

在项目目录下创建一个 uwsgi.ini 的文件。跟manage.py 同级。
这个文件也可以创建在别的文件夹下,但是运行的时候必须cd到当前目录下。

$ vim uwsgi.ini

在uwsgi文件中添加如下代码

[uwsgi]
# 项目目录
chdir=/var/www/venv/project
# python 虚拟环境
home=/var/www/venv
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定项目的application
module=botai.wsgi:application
# 指定sock的文件路径
socket=127.0.0.1:8015
# 启用主进程
master=true
# 进程个数
workers=5
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/var/www/venv/project/logs/uwsgi.log
5. 启动项目

以上配置完成以后,我们需要去项目目录里去 启动我们的uwsgi来启动项目

$ cd /var/www/venv/project
$ uwsgi --ini uwsgi.ini

运行成功后,你可以直接去浏览器输入你的公网IP地址,就可以访问了!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4676226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存