Django多域名配置之Django-hosts插件的使用
使用场景:
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 settings from APP1 import views
from APP2 import views host_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
Django多域名配置之Django-hosts插件的使用的更多相关文章
- django的命令, 配置,以及django使用mysql的流程
1.Django的命令: 下载 pip install django==1.11.16 pip install django==1.11.16 -i 源 创建项目 django-admin start ...
- Django静态文件配置-request方法-ORM简介-字段的增删改查
app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...
- 73、django之setting配置汇总
前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总. setting配置汇总 1.app路径 INSTALLED_APPS = [ 'django.co ...
- django之setting配置汇总
前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总. setting配置汇总 1.app路径 INSTALLED_APPS = [ 'django.co ...
- django之基本配置
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- django之session配置
session应用示例 from django.shortcuts import render from django.shortcuts import HttpResponse from djang ...
- Django + Apache + wsgi配置和环境搭建(ubuntu)
上一篇写了Django + nginx + uwsgi配置和环境搭建(ubuntu) 由于公司服务器环境问题,又配置了apache的环境.记录例如以下: 一. 安装环境: #apache sudo a ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- python - Django 跨域配置
一:settings 中间件配置路径 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.s ...
随机推荐
- 结对项目 Pair Project
结对项目 Pair Project 一人编程,一人操作,共同检查. 源码 https://github.com/dpch16303/test/blob/master/%E5%AE%9E%E8%B7%B ...
- SQLserver 进程被死锁问题解决
事务(进程ID xx)与另一个进程被死锁在 锁|通信缓冲区 资源上,并且已被选座死锁牺牲品.请重新运行该事务.Sqlserver 当出现这个错误时,如下图: 解决办法:更改数据库事务隔离级别 alte ...
- EL表达式和JSTL标签库
expresion language表达式语言 可以输出表达式的值.跟jsp的表达式脚本一样.计算表达式的值后输出. EL表达式出现的目的是为了使JSP写起来更加简单,让jsp的代码更佳简化. 1. ...
- 软件开的目录规范+sys,os,time模块
—————————————————————————————————————————————————————————————————— start.py import sys,os # print(__ ...
- pandas.DataFrame
1.可以使用单个列表或列表列表创建数据帧(DataFrame). 单个列表 import pandas as pd data = [1,2,3,4,5] df = pd.DataFrame(data) ...
- zookeeper和kafka的安装
一.安装zookeeper yum install -y java ##安装jdk1.6版本以上 wget http://mirror.bit.edu.cn/apache/zookeeper/zook ...
- 简单FTP服务器搭建
1 配置IIS 打开控制面板-卸载程序-点击 打开或关闭windows功能-勾选 internet信息服务-确定 2 配置iis web站点 开始菜单-搜索iis并进入iis管理器(计算机-右键-管理 ...
- 二本毕业,我是如何逆袭成为BAT年薪40W的Java工程师的?
身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的.其实很简单——努力! 我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找 ...
- windows部分常用命令
dir 查看内容 md 新建目录 copy 复制 del 删文件 cls 清屏 tasklist 查看运行进程 taskkill /pid xxx 杀死进程xxx taskmgr 打开任务管理器 ms ...
- MySQL Binlog详解
MySQL Binlog详解 Mysql的binlog日志作用是用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被bi ...