Django项目ubuntu一体化部署

Django项目ubuntu一体化部署

1.前言

其实在创业之初,白手起家的阶段,网站的日流量不过100,这个时候采用分布式部署不是不行,不过会多花点钱。but,我们可以做两手准备,先使用一台机子进行一体化部署,等到日流达到性能瓶颈的时候再用分布式,这可以为你省下一大笔设备维护费。

一体化部署:数据库,项目,nginx在一台机子上

2.配置mysql数据库

ubuntu系统是基于Debain的,所以我们安装软件用apt

# 在Ubuntu上安装mysql服务器
apt install mysql-server
# 进入mysql控制台
mysql -uroot -p

这里失败的话可能是系统环境变量出错了或者没安装上

——如果需要导出数据,则可用mysqldump命令(终端)

cd xxx				# mysql文件的bin目录下
mysqldumo -uroot xxx(数据库名)>xxx(导出到哪里) -p

——如果需要导入数据

mysql -uroot -pxxx(密码) xxx(数据库名)<xxx(sql文件位置)

在django连接数据库的时候,可能出现Access denied for user ‘root’@‘localhost’,原因可能是不同数据库版本加密算法不同,所以需要改一下mysql密码

mysql -uroot -p		# 进入mysql
mysql >use mysql	# 进入mysql库
mysql >ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新的密码'

3.配置django项目

3.1 下载虚拟环境

apt install virtualenv

3.2 安装python

apt install python3			# 安装python
apt install python3-pip		# pip包,一般会默认安装

3.3 构建虚拟环境

mkdir /envs						# 创建一个envs文件夹,用于存放不同虚拟环境
virtualenv /envs/nb				 # 创建一个python虚拟环境
source /envs/nb/bin/activate	  # 激活虚拟环境

3.4 复制你的django项目到任意文件夹下

3.5 django项目配置

安装依赖包

pip freeze > requirements.txt		# 虚拟环境下

更改setting文件,这个根据你的配置来

运行测试,看看能不能正常完成

pyton manage.py runserver xxx你的ip/端口

4.配置uwsgi

pip install uwsgi		# 安装uwsgi

4.1 配置uwsgi(ini文件),这里用我的项目举例

[uwsgi]
# uwsgi的应用端口,也就是进入网站的ip和端口
#   如果直接使用,则用http
http = localhost:8080
#   如果用nginx,则用socket
# socket = localhost:8080

# 项目目录
chdir = ./

# django项目的wsgi文件
wsgi-file = xxx/project/wsgi.py

# 获取uwsgi统计信息的服务地址
status = localhost:9191

# pid信息和log信息
daemonize = uwsgi.log
pidfile = uwsgi.pid

# 用于存放静态文件
# 使用前先收集静态文件 python manage.py collectstatic
static-map = /static=xxx/project/file

4.2 收集静态文件

# 这里我收集的文件放在项目根目录下的file文件   xxx/project/file
python manage.py collectstatic

4.3 常用uwsgi命令

uwsgi --ini uwsgi.ini					# uwsgi以之前的ini文件配置运行
uwsgi --stop xxx/project/uwsgi.pid		 # 关闭uwsgi,pid文件是上面ini文件里pid信息的储存地址
ps -ef | grep uwsgi						# 查看uwsgi进程
kill -9 pid(进程pid)					  # 强制关闭进程
uwsgi --reload uwsgi.pid				# 重启uwsgi

4.4 运行测试

先在uwsgi.ini配置文件第一部分uwsgi的应用端口改成http

http = localhost:8080

打开浏览器,访问localhost:8080即可

5.nginx配置

5.1 安装nginx

apt install nginx

5.2 一些命令

systemctl status nginx		# 查看进程
systemctl enable nginx		# 设置开机自启动
systemctl start nginx		# 开启nginx
nginx -s stop			   # 关闭nginx

5.3 nginx配置

在/etc/nginx/nginx.conf,打开conf文件

...
http{
	...
	server{
		listen 8888;					# 应用端口
		server_name localhost;			 # 服务器名字
		
		location / {					# 用uwsgi的固定配置
			include uwsgi_params;
			uwsgi_pass localhost:8080;	 # uwsgi的应用端口
		}
		
	}
	...
}
...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值