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

生产环境上线/部署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成功访问网站

项目部署结束

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值