超实用Nginx+Uwsgi+Django+Python真实环境服务器部署

环境:Ubuntu18.04 x64,基于root用户

阿里云服务器:https://www.aliyun.com/

1.python开发环境

a.pyenv安装配置

apt-get install git
apt-get install curl
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

在home根目录下ls -alll查看.bashrc ,执行sudo vim .bashrc,将以下三行代码加入末尾

export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

让配置文件立即生效

source /root/.bashrc

查看是否安装成功

echo $PATH;

结果中有shims说明成功

/root/.pyenv/plugins/pyenv-virtualenv/shims:/root/.pyenv/shims:/root/.pyenv/bin:/root/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

更新

pyenv update

b.python安装配置

备份文件

cd /var/lib/dpkg
mv info info.bak
mkdir info

安装依赖包

apt-get install libc6-dev
apt-get install gcc
apt-get install -y make build-essential
apt-get install -y make libssl-dev
apt-get install -y make zlib1g-dev
apt-get install -y make wget curl llvm
apt-get install -y make libnss3-tools
apt-get install -y make python3-venv
apt-get install libbz2-dev
apt-get install libreadline-dev
apt-get install libsqlite3-dev

使用pyenv安装python

pyenv install 3.6.6 -v

更新 pyenv的数据库

pyenv rehash

选中3.6.6作为全局默认版本

pyenv global 3.6.6

测试

python 	#进入
exit()  #退出

c.virtualenv安装配置

安装virtualenv

pip install --upgrade pip
pip install virtualenv
pip install --upgrade virtualenv

创建项目的虚拟环境

pyenv virtualenv 3.6.6 env366    #注意 : 必须是通过pyenv安装的版本否则会报错

切换虚拟环境

# 进入:
pyenv activate env366
# 退出:
pyenv deactivate env366

当显示(env365) 表示你现在处在 env36 环境中

2.nginx安装配置

阿里云开启SSL证书:控制台>>域名>>域名后的管理>>免费开启SSL证书>>选择免费版证书>>申请证书(等带一会儿完成签发,中间需要手动验证)>>进入证书列表>>在已签发中下载证书(.key和.pem文件)>>将证书上传到服务器的nginx安装目录中新建的cert目录中

nginx配置及https域名配置:

# 安装
apt-get install nginx
# 配置
cd /etc/nginx/sites-available
cp default www.xingjidemimi.cn
vim www.xingjidemimi.cn
# 修改www.xingjidemimi.cn的代码并保存,仅保留如下,其他无用代码可注掉:
"""
server {
        listen 80;
        listen 443; # https端口
        server_name www.xingjidemimi.cn;
        charset utf-8; # https配置
        ssl on;
        ssl_certificate   cert/1790637_www.xingjidemimi.cn.pem; # https配置
        ssl_certificate_key  cert/1790637_www.xingjidemimi.cn.key; # https配置
        ssl_session_timeout 5m; # https配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # https配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # https配置
        ssl_prefer_server_ciphers on; # https配置
		location / {
			uwsgi_pass      127.0.0.1:8000;
            include uwsgi_params;
        }
        location /static{
            alias 	/var/www/PersonalWebsite/all_static;
        }
}
"""
cd /etc/nginx/sites-enabled
ll
ln -s ../sites-available/www.xingjidemimi.cn
ll
# 重启nginx
service nginx restart

3.安装配置uwsgi

收集项目中的静态资源

在项目根目录中新建静态资源收集目录all_static

配置项目中的setting.py文件

STATIC_URL = '/static/'
# 静态资源收集配置
STATIC_ROOT = os.path.join(BASE_DIR, 'all_static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'all_static'),
]

执行静态资源收集

python manage.py collectstatic

进入到python创建的env366虚拟环境

# 安装
pip install uwsgi
# 配置
进入到django项目根目录内
vim uwsgi.ini
# 加入以下代码:
"""
[uwsgi]
#使用nginx连接时使用
socket = 0.0.0.0:8000
#直接做web服务器使用
#http=127.0.0.1:8080
#项目目录
chdir =  /var/www/PersonalWebsite
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file = PersonalWebsite/wsgi.py
module = PersonalWebsite.wsgi
# 配置虚拟环境
virtualenv = /root/.pyenv/versions/env366
#plugins = python
#主进程
master = true
#处理器核心
processes = 1
#线程
threads = 2
"""

4.安装项目需要的包

在python虚拟环境env366下导入或安装开发所需要的包

pip install django==2.1.5
pip install djangorestframework

5.上传项目

# django项目一般放在以下目录内
cd /var/www/

6.运行

# 在项目根目录内执行:
uwsgi uwsgi.ini

7.说明

nginx和uwsgi服务不能终止,否则服务器停止服务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值