超详细Python教程——项目部署上线指南

项目部署上线指南

准备上线

  1. 上线前的检查工作。

    python manage.py check --deploy
    
  2. 将DEBUG设置为False并配置ALLOWED_HOSTS。

    DEBUG = False
    ALLOWED_HOSTS = ['*']
    
  3. 安全相关的配置。

    # 保持HTTPS连接的时间
    SECURE_HSTS_SECONDS = 3600
    SECURE_HSTS_INCLUDE_SUBDOMAINS = True
    SECURE_HSTS_PRELOAD = True
    
    # 自动重定向到安全连接
    SECURE_SSL_REDIRECT = True
    
    # 避免浏览器自作聪明推断内容类型
    SECURE_CONTENT_TYPE_NOSNIFF = True
    
    # 避免跨站脚本攻击
    SECURE_BROWSER_XSS_FILTER = True
    
    # COOKIE只能通过HTTPS进行传输
    SESSION_COOKIE_SECURE = True
    CSRF_COOKIE_SECURE = True
    
    # 防止点击劫持攻击手段 - 修改HTTP协议响应头
    # 当前网站是不允许使用<iframe>标签进行加载的
    X_FRAME_OPTIONS = 'DENY'
    
  4. 敏感信息放到环境变量或文件中。

    SECRET_KEY = os.environ['SECRET_KEY']
    
    DB_USER = os.environ['DB_USER']
    DB_PASS = os.environ['DB_PASS']
    
    REDIS_AUTH = os.environ['REDIS_AUTH']
    

更新服务器Python环境到3.x

说明:如果需要清除之前的安装,就删除对应的文件和文件夹即可

  1. 安装底层依赖库。

    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel libxml2
    
  2. 下载Python源代码。

    wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
    
  3. 验证下载文件。

    md5sum Python-3.7.6.tar.xz
    
  4. 解压缩和解归档。

    xz -d Python-3.7.6.tar.xz
    tar -xvf Python-3.7.6.tar
    
  5. 执行安装前的配置(生成Makefile文件)。

    cd Python-3.7.6
    ./configure --prefix=/usr/local/python37 --enable-optimizations
    
  6. 构建和安装。

    make && make install
    
  7. 配置PATH环境变量(用户或系统环境变量)并激活。

    vim ~/.bash_profile
    vim /etc/profile
    
    ... 此处省略上面的代码...
    
    export PATH=$PATH:/usr/local/python37/bin
    
    ... 此处省略下面的代码...
    
    source ~/.bash_profile
    source /etc/profile
    
  8. 注册软链接(符号链接)- 这一步不是必须的,但通常会比较有用。

    ln -s /usr/local/python37/bin/python3 /usr/bin/python3
    
  9. 测试Python环境是否更新成功(安装Python 3一定不能破坏原来的Python 2)。

    python3 --version
    python --version
    

项目目录结构

假设项目文件夹为project,下面的五个子目录分别是:codeconflogsstatvenv分别用来保存项目的代码、配置文件、日志文件、静态资源和虚拟环境。其中,conf目录下的子目录cert中保存了配置HTTPS需要使用的证书和密钥;code目录下的项目代码可以通过版本控制工具从代码仓库中检出;虚拟环境可以通过工具(如:venv、virtualenv、pyenv等)进行创建。

project
├── code
│   └── fangtx
│       ├── api
│       ├── common
│       ├── fangtx
│       ├── forum
│       ├── rent
│       ├── user
│       ├── manage.py
│       ├── README.md
│       ├── static
│       └── templates
├── conf
│   ├── cert
│   │   ├── 214915882850706.key
│   │   └── 214915882850706.pem
│   ├── nginx.conf
│   └── uwsgi.ini
├── logs
│   ├── access.log
│   ├── error.log
│   └── uwsgi.log
├── stat
│   └── css
│   └── images
│   └── js
└── venv
    ├── bin
    │   ├── activate
    │   ├── activate.csh
    │   ├── activate.fish
    │   ├── celery
    │   ├── celerybeat
    │   ├── celeryd
    │   ├── celeryd-multi
    │   ├── coverage
    │   ├── coverage3
    │   ├── coverage-3.7
    │   ├── django-admin
    │   ├── django-admin.py
    │   ├── easy_install
    │   ├── easy_install-3.7
    │   ├── pip
    │   ├── pip3
    │   ├── pip3.7
    │   ├── __pycache__
    │   ├── pyrsa-decrypt
    │   ├── pyrsa-decrypt-bigfile
    │   ├── pyrsa-encrypt
    │   ├── pyrsa-encrypt-bigfile
    │   ├── pyrsa-keygen
    │   ├── pyrsa-priv2pub
    │   ├── pyrsa-sign
    │   ├── pyrsa-verify
    │   ├── python -> python3
    │   ├── python3 -> /usr/bin/python3
    │   └── uwsgi
    ├── include
    ├── lib
    │   └── python3.7
    ├── lib64 -> lib
    ├── pip-selfcheck.json
    └── pyvenv.cfg

下面以阿里云为例,简单说明如何为项目注册域名、解析域名以及购买权威机构颁发的证书。

  1. 注册域名

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 域名备案

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月流霜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值