生产环境上线部署django项目centos+uwsgi+nginx

mac2026-05-03  8

生产环境上线/部署django项目centos+uwsgi+nginx

说明:为了确保成功点火,按照以下操作时会涉及,请留意

使用centos7.x版本的服务器 使用python3.6.6 使用django2.0.4

网站数据目录 /data 后端python代码上传目录 /data/wwwroot 虚拟环境目录 /data/env

nginx、python安装目录 /usr/local nginx配置文件所在目录 /usr/local/nginx/conf uwsgi配置文件所在目录 /data/wwwroot

centos部分

1、服务器系统版本查询:

cat /etc/redhat-release

2、更新系统: yum update -y (升级所有包同时也升级软件和系统内核) yum -y upgrade (只升级所有包,不升级软件和系统内核) 3、安装开发工具——软件管理包:(帮助源码安装软件)

yum -y groupinstall "Development tools"

4、安装python的准备工作——安装依赖:

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

python部分

5、下载python3源文件:

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

如果提示无法使用wget,请安装wget:

yum -y install wget

解压python的tgz文件:

tar -zxvf Python-3.6.6.tgz

进入文件目录:

cd Python-3.6.6

配置python程序的安装位置(/usr/local/python3):

./configure --prefix=/usr/local/python3

执行编译安装:

make && make install

6、给python和pip建立软连接(软连接建立后可以在不同位置使用命令):

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

7、之后便可以查看python和pip版本

python3 pip3 -V

虚拟环境部分(部署时也可以不使用虚拟环境)

8、虚拟环境作用:使用虚拟环境,可在虚拟环境中安装不同版本的python,安装不同版本python的库

先全局安装虚拟环境管理器virtualenv:

cd /usr/local pip3 install virtualenv

9、安装后用这个管理器进行总的管理,可以安装多个虚拟环境,在每个环境中不同版本的python

建立virtualenv的软链接:

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

10、创建网站数据目录

mkdir -p data

创建虚拟环境总目录(在env下可以安装多个项目的虚拟环境),如: /data/env/mysit_env /data/env/myweb_env

mkdir -p /data/env

创建网站根目录

mkdir -p /data/wwwroot

切换到env目录中,并创建虚拟环境

cd /data/env/ virtualenv --python=/usr/bin/python3 mysite

11、启动虚拟环境

cd /data/env/mysite/bin source activate

退出命令

deactivate

13、在虚拟环境中安装django和uwsgi pip3 install django==2.0.4 (指定安装和你项目相同的版本)

pip3 install uwsgi

给uwsgi建立软链接,方便使用

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

可以分别在系统中和虚拟环境中使用pip3 list命令,查看系统或虚拟环境中安装的python库

[root@xxx testone_env]# pip3 list (testone_env) [root@xxx testone_env]# pip list

通过比较感受一下虚拟环境的作用

uwsgi部分

14、配置uwsgi 根目录创建uwsgi.xml

cd /data/wwwroot vim uwsgi.xml <uwsgi> <socket>127.0.0.1:9000</socket>#nginx转发过来,uwsgi接收的内部端口 <chdir>/data/wwwroot/</chdir>#项目目录 <module>testone.wsgi</module>#testone为应用目录 <processes>4</processes> <daemonize>uwsgi.log</daemonize> </uwsgi>

不会使用vim可以通过FileZilla Client软件自己编辑然后上传

nginx部分

15、安装nginx配置nginx.conf 下载安装包

cd /usr/local wget http://nginx.org/download/nginx-1.13.7.tar.gz

解压到nginx-1.13.7文件夹 执行安装

cd nginx-1.13.7 ./configure make&&make install

16、配置nginx.conf

cd /usr/local/nginx/conf vim nginx.conf

找到server块

server { listen 80; #服务器监听的端口 server_name localhost; #本地服务器 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9000; #转发到uwsgi uwsgi_param UWSGI_SCRIPT testone.wsgi; #wsgi脚本名 uwsgi_param UWSGI_CHDIR /data/wwwroot; #项目目录 #root html; #index index.html index.htm; }

django部分

修改django项目中settings.py

​DEBUG = False ALLOWED_HOSTS = ['47.xxx.xxx.xxx','127.0.0.1'] #服务器名

配置结束

启动项目后即可访问

1、启动uwsgi

cd /data/env/testone_env/bin 进入虚拟环境 source activate 启动虚拟环境 cd /data/wwwroot uwsgi -x uwsgi.xml

2、启动nginx

cd /usr/local/nginx/sbin ./nginx -t #可以不操作 ./nginx ./nginx -s reload #可以不操作

3、可以通过ip成功访问网站

项目部署结束

最新回复(0)