nginx+uwsgi+django部署

环境准备

操作系统:ubuntu
网络要求:可以连接外网

开始

1、安装ssh,允许远程登录

之后就可用通过xshell操作了

sudo apt-get install ssh

2、使用pyenv管理python版本

先更新系统环境,再安装curl、git

sudo apt-get update
sudo apt-get install curl git-core

安装pyenv,下方命令将pyenv安装到当前用户的~/.pyenv目录下

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

安装vim

sudo apt-get install vim

编辑~/.bashrc文件,在末尾添加如下内容

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
  export PATH="${PYENV_ROOT}/bin:${PATH}"
  eval "$(pyenv init -)"
fi

执行source命令使其生效

source ~/.bashrc

3、安装python

先安装依赖包,如下:

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

再执行如下命令,安装python3.6.6

pyenv install 3.6.6 -v

这个命令下载会比较慢,打印出下载url后,ctrl+c停止,使用wget下载到~/.pyenv/cache目录下,命令如下:

mkdir ~/.pyenv/cache
cd ~/.pyenv/cache
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz

再次执行安装python3.6.6命令,会直接读cache中的包直接安装

pyenv install 3.6.6 -v

4、配置虚拟环境
执行如下命令进行配置

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

重启shell

exec "$SHELL"

创建虚拟环境 pywk1

pyenv virtualenv 3.6.6 pywk1

执行如下命令切换到虚拟环境 pywk1

pyenv shell pywk1

5、安装配置nginx

安装nginx

sudo apt-get install nginx

启停nginx

systemctl start nginx
systemctl stop nginx
systemctl restart nginx

打开浏览器访问 xxx.xxx.xxx.xxx:80,验证nginx是否启动成功

6、django代码上传

通过pycharm直接上传,省时省力省心,具体操作如下:
打开 Tools - deployment - configuration
在这里插入图片描述
添加一个远程,
connection标签页中填写必要的协议类型、host、username、password、root path等信息,
mappings标签页中映射本地目录与远程目录,
excluded paths标签页中填写无需上传的目录。
配置完成后,点击Tools - deployment - automatic upload,开启自动上传
或点击 Tools - deployment - upload to xxx,进行上传

7、项目试运行

设置任意ip均可访问,编辑app目录下的settings.py文件,修改ALLOWED_HOSTS的值

ALLOWED_HOSTS = ['*']

pycharm中项目根目录下执行导出依赖包命令

pip freeze > require.txt

服务器中cd到require.txt所在目录,执行安装依赖包命令

pip install -r require.txt

执行runserver命令,启动项目

python manage.py runserver 0.0.0.0:8000

浏览器中输入 xxx.xxx.xxx.xxx:8000 验证项目是否可以访问

8、nginx代理

项目根目录下添加config目录,新建djapp_nginx.conf文件

mkdir ~/djapp/config
vim ~/djapp/config/djapp_nginx.conf

文件中填写如下内容

server {
	listen 80;
	server_name 10.10.14.5 localhost; #ip替换为服务器ip
	
	access_log /home/peace/log/access.log; #日志路径文件自己配置
	error_log  /home/peace/log/error.log; #日志路径文件自己配置
	
	location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:8890;
	}
	location /static/ {
		alias /home/peace/djapp/static/;
		expires 30d;
	}	
}

创建项目日志目录,命令如下:

mkdir /home/peace/log/ #日志文件路径保持与上一步中的相同即可

/etc/nginx/nginx.conf文件中添加刚刚新增的nginx配置文件,增加如下内容

include /home/peace/djapp/config/*.conf; #具体路径以自己的为准

在如下位置
在这里插入图片描述
配置完成,重启nginx

9、uwsgi安装配置

在虚拟环境中安装uwsgi

pyenv shell pywk1
pip install uwsgi

在项目的config目录下新增uwsgi配置文件

vim ~/djapp/config/uwsgi.ini

添加如下内容:

[uwsgi]
master = true
processes = 4
pythonpath = /home/peace/djapp #配置自己的项目路径
module = djapp.wsgi
socket = 127.0.0.1:8890
logto = /home/peace/log/uwsgi.log  #配置自己的日志路径

10、启动项目

进入项目的config目录,执行如下命令

uwsgi --ini uwsgi.ini

11、后续mysql部署待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值