zoukankan      html  css  js  c++  java
  • django2.0 + python3.6 在centos7 下部署生产环境的一些注意事项

    一:mysql 与环境选用的坑

    目前, 在生产环境部署django有三种方式:

    1. apache + mod_wsgi

    2. nginx + uwsigi

    3. nginx + supervisor + gunicorn

    我选用的是nginx + supervisor + gunicorn, 因为我使用的是python3, django的mysql数据库驱动MySQLdb只支持python2, 我们需要在项目app的__init__.py中设置

    import pymysql
    pymysql.install_as_MySQLdb()

     
    然而, uwsgi 会对此报错.
    据说apache 的 mod_wsgi 对python的支持不是那么好,所以我就不入坑了.
     
    二: css丢失的坑
    目前django在生产环境上有一坑,那就是开了debug=False后, 所有的css都丢失, 网上的很多方案我都试过,但是只有下面这个英文的有用, 注意看,这个更新时间是2018年3月1日, 比较新.
    https://devcenter.heroku.com/articles/django-assets
     
    注意,在此处做了static转移后,不应该再去nginx设置 static , 否则就会出现用ip:port 方式能够正常访问, 但是域名访问依旧没有css的情况
     
    三: 我的一些配置
    (具体配置方式请自行百度)

    1. gunicorn
    在和manage.py同文件夹内加入 文件 gunicorn.conf.py
    import multiprocessing
    
    bind = "0.0.0.0:8080"
    workers = 2  #workers是工作线程数,一般设置成:服务器CPU个数 + 1
    errorlog = '/var/log/gunicorn_chenyansu_xyz.error.log'
    accesslog = '/var/log/gunicorn_chenyansu_xyz.access.log'
    #loglevel = 'debug'
    proc_name = 'chenyansu_xyz'
    

    2. supervisor配置

    chenyansu_xyz.ini

    [program:chenyansu_xyz]
    command=gunicorn -c /path/to/chenyansu_xyz/gunicorn.conf.py  chenyansu_xyz.wsgi:application
    directory=/path/to/chenyansu_xyz/
    user=root
    autostart=true
    autorestart=true
    redirect_stderr=true
    ;environment=PYTHON_EGG_CACHE=/opt/www/memo/.python-eggs
    

    3.nginx

    chenyansu_xyz.conf

    server {
        listen      80;
        server_name www.chenyansu.xyz;
        charset     utf-8;
     
        client_max_body_size 75M;
    
        location / {
          proxy_pass http://127.0.0.1:8080;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
        }
     
        location /media  {
            alias /root/code/chenyansu_xyz/media;
        }
     
    }
    
     
     
  • 相关阅读:
    28335外部中断的简单介绍和配置
    C++中强制类型转换
    GitHub上Markdown语法的高级应用
    C++中强制类型转换
    模拟鼠标点击事件
    clone一行div tr 每次增量赋值
    linux tomcat自动部署shell
    maven 引用本地jar
    JDK自带工具keytool生成ssl证书
    jenkins+maven+svn实现简单的一键发布
  • 原文地址:https://www.cnblogs.com/chenyansu/p/8671666.html
Copyright © 2011-2022 走看看