使用场景:

Django中有两个app,如果通过域名来访问,可以使用www.domain.com/a、www.domain.com/b来访问。这样就显得有点LowB了。如果我想通过a.domain.com、b.domain.com来访问两个app怎办?

请使用django-host来实现。

1、安装django-host 插件

pip install django-host

2、修改django配置 settings.py

1.在 INSTALLED_APP 中注册 'django-host' 应用2.在 MIDDLEWARE 配置项的开始位置,添加 'django_hosts.middleware.HostsRequestMiddleware'3.在 MIDDLEWARE 配置项的结束位置,加'django_hosts.middleware.HostsRequestMiddleware'4.在 settings.py 文件同目录下创建 host.py 文件,添加如下内容:
from django_hosts import patterns, host
from django.conf import settingsfrom APP1 import views
from APP2 import viewshost_patterns = patterns('',host(r'app1', 'APP1.urls', name='APP1'),host(r'app2', 'APP2.urls', name='APP2'),
)5.修改 settings.py 文件,在 ROOT_URLCONF 配置项之后增加 ROOT_HOSTCONF = '项目目录名.host'   #注意,不是app的名字6.修改 settings.py 文件,在ROOT_HOSTCONF 配置项之后增加 DEFAULT_HOST = 'app1'      #设置一个默认的域名,在没有匹配到所请求的域名时,默认返回这个。7.在每个app下创建自己的urls.py

由于线上使用的Nginx+Uwsgi的环境,顺便贴一下Nginx和Uwsgi的配置

Nginx的配置如下:

a.domain.com配置

  server {listen       80;server_name  a.domain.com;location / {include     uwsgi_params;uwsgi_pass  127.0.0.1:8000;uwsgi_param  UWSGI_SCRIPT  web.wsgi;
        }location /static {alias /data/local/app/app1/static;}
        error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}

b.domain.com配置

server {listen       80;server_name  b.domain.com;#charset koi8-r;
access_log  logs/app2.access.log  main;error_log  logs/app2.error.log  info;location / {include     uwsgi_params;uwsgi_pass  127.0.0.1:8000;uwsgi_param  UWSGI_SCRIPT  web.wsgi;uwsgi_read_timeout  20;}#location /static {#    alias /data/local/app/blog/web/WeChatAPI/static;#}
}

Uwsgi的配置如下:

[uwsgi]socket = :8000
chdir = /data/local/app/
#module = web.wsgi:app1
wsgi-file = web/wsgi.py
master = true
processes = 1
pidfile = /tmp/web-master.pid
daemonize = /var/log/uwsgi/app1.log

参考:http://blog.csdn.net/sinat_21302587/article/details/74017312

django-hsot github地址:https://github.com/jazzband/django-hosts

转载于:https://www.cnblogs.com/ahaii/p/8603489.html

Django多域名配置之Django-hosts插件的使用相关推荐

  1. 怎么检查python是否安装成功-检查python以及django是否安装配置成功

    首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...

  2. github—本地域名配置方式

    ip查询 进入网址:https://ipaddress.com/website/github.com 查看github的ip地址 得到 140.82.113.4 GitHub.comip地址配置 域名 ...

  3. Django二级域名路由配置方案django-hosts

    最终效果 http://www.mydomain.cn/api/ --> http://api.mydomain.cn/ http://www.mydomain.cn/blog/ --> ...

  4. VMware workstation虚拟机REHL8下配置安装Django 4.0.6 +uwsgi 2.0.20 +nginx1.22+Mariadb10.9.1

    前言: 本文主要的目的是在REHL8的中搭建一个简易的 Django的web应用步骤记录,如果只是想学习Django使用的话,那么直接安装Django就可以了,它有自带的web服务可以直接测试使用.之 ...

  5. 阿里云服务器centos7配置Python Django项目

    阿里云服务器centos7配置Python Django项目 2020-3-25更新更换服务器后还原系统+相应配置 2019-12-13更新 Nginx域名绑定 2019-12-12更新 静态文件加载 ...

  6. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  7. django配置在MySQL_怎么在Django中安装与配置mysql

    怎么在Django中安装与配置mysql 发布时间:2021-02-26 17:42:11 来源:亿速云 阅读:57 作者:Leah 本篇文章为大家展示了怎么在Django中安装与配置mysql,内容 ...

  8. python django restful框架_python+django+rest框架配置创建方法

    安装好所需要的插件和包: python.django.pip等版本如下: 采用Django REST框架3.0 1.在python文件夹下D:\python\Lib\site-packages\dja ...

  9. Django + Apache + wsgi配置和环境搭建(ubuntu)

    上一篇写了Django + nginx + uwsgi配置和环境搭建(ubuntu) 由于公司服务器环境问题,又配置了apache的环境.记录例如以下: 一. 安装环境: #apache sudo a ...

最新文章

  1. tomcat外网映射工具
  2. WWDC2014:留给微软的时间不多了!
  3. 通过传入的栏目编号找出并返回当前栏目编号及其所有子栏目编号
  4. 在Windows下搭QT编程环境
  5. 如何在 ASP.NET Core 中为同一接口配置不同的实现
  6. 学习之路>>负载均衡
  7. JVM—类加载过程学习
  8. 学生信息管理系统问题集锦(二)
  9. Spring+springMvc+Mybatis
  10. 蓝桥杯 平方怪圈 JAVA
  11. c语言矩阵键盘反转法扫描,行列扫描法,反转法,状态机法三种矩阵键盘扫描方法详解 带程序...
  12. mysql 预处理stmt操作(写入数据库和从数据库中取出)
  13. Mac pro 安装ubuntu系统
  14. 【禁止套娃】用PPSSPP模拟PSP模拟Neogeo模拟SNK拳皇97
  15. 什么是生物质发电?生物质发电有哪些方法?
  16. 如何让自己的网站快速被百度收录(方法一)
  17. (wa待对拍)HDU - 2057 十六进制加法 难度:C++入门 复杂度:有点复杂 翻译难度:简单...
  18. CampusBulider(模模搭)学习笔记6:室内搭建
  19. obs 推流编码在哪设置_在OBS上进行H265推流
  20. Android UI 测试指南之 Espresso

热门文章

  1. C# 读取EXCEL文件的三种经典方法
  2. 让一切“并行”——任务并行库原理及应用
  3. ExtJs与jQuery的比较
  4. 微软.NET各技术应用前景 针对vs.net2010
  5. key store是否创建_EKS-实践一 创建EKS集群
  6. 【4】协同过滤算法的原理与实现
  7. ffmpeg sws_scale函数详解
  8. 图的最小生成树(Prim算法)
  9. Oracle PL/SQL进阶
  10. zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法