回到顶部

Contents

centos7 + virtualenv + django + uwsgi + nginx 部署 Django 站点

安装环境

  • centos: 7.x
  • python: 3.6.x
  • django:1.11

virtualenv 和 virtualenvwrapper 安装

    centos7 之 python3, git, nginx, redis 安装

django 项目

    1. 配置好 settings.py (特别是静态文件的配置一定要正确,static_root  要独立的路径 STATIC_ROOT = 'static_root/',不要忘记了 python3 manage.py collectstatic, Nginx 配置 static 路径时要使用 static_root 的绝对路径)

# 允许的访问的 HOST, * 全部
ALLOWED_HOSTS = ["*"]

# STATIC_URL:设置的static file的起始url,这个只可以在template里面引用到。如果不喜欢static可以更改。
STATIC_URL = '/static/'
# STATIC_URL = QINIU_BUCKET_DOMAIN + '/static_root/'
# STATICFILES_DIRS 除了各个app的static目录以外还需要管理的静态文件位置
# 其它存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT
# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static').replace('\\', '/'),
]

STATIC_ROOT = 'static_root/'  # 相对于项目的路径 或 静态文件上传至七牛云的前缀
# STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage'  # 只管理静态文件

# upload folder
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')

    2. 配置项目的 urls.py(给静态文件配置路由,顺手把 media 文件的路由也配置了;实际上用 nginx 转发了 static_root 和 media 文件夹,这步骤配不配都没关系了)

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [ ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \
              + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

uwsgi 配置

    uwsgi 配置 python virtualenv 虚拟环境目录

nginx 配置

    nginx 同一 iP 多域名配置方法(多文件)

nginx 不能访问 Django 静态文件的原因

    https://xieboke.net/article/74/

注意事项

阿里云服务器,默认开放的端口好像只有 22、80、443,如果是要用其他端口访问,需要登录 阿里云控制台(安全 -> 防火墙 -> 添加规则),开放你需要使用的端口。

部署视频资料

  https://www.bilibili.com/video/av38692008?t=157

windows 下部署

   windows x64 + apache2.4 x64 + python3.5 x64 + django + mod_wsgi 部署站点

 

 

^_^
请喝咖啡 ×

文章部分资料可能来源于网络,如有侵权请告知删除。谢谢!
前一篇: Scylla 代理池
下一篇: python 和 django 学习资料收集(2020-4-25 更新)
captcha