上一篇文章简单说了怎么把django的项目部署到Apache上。

现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢。

要用到 Apache 的虚拟主机配置。

其实Apache的虚拟主机之前也配置过,有时有效,有时又不好用,也不知道个所以然。这次我详细的写一下每一步都要怎么做:

第一步:开启Apache虚拟主机功能:

Apache的虚拟主机功能,默认是关闭的。如果要使用这个功能,就要开启虚拟主机功能。

如同上文提到的Apache rewrite功能一样,想要使用xx功能,就需要加载xx模块,然后重启Apache。

  现在我想用虚拟主机功能,就需要加载虚拟主机模块。同样是使用 a2enmod 命令,加载好vhost_alias.load这个模块,然后重启Apache,就开启了虚拟主机功能。

具体步骤:

1.1: 敲如下命令:

a2enmod 

1.2: 之后会列出所有可用的Apache模块(mod),然后控制台会等待你的选择:

1.3: 找到我现在需要的 vhost_alias 模块,照着敲下来,并回车确认:

vhost_alias

1.4: 回车确认之后,会提示已经配置好了,需要手动重启Apache,方可生效。

 虚拟主机配置番外:

a2enmod 干了点啥呢?

在Apache配置文件里面,一般是/etc/apache/ 这个目录下的httpd.conf或者apache2.conf文件,打开之后可以发现这样两行:

意思是:把mods-enabled文件夹下面所有以load和conf结尾的文件包含进来。

同时会发现,在当前目录里的这个mods-enabled 文件夹里面都是些什么呢?就是如下这些东西:

这里面都是一些软连接,也就是俗称的,快捷方式,均是链接到上级目录中的mods-available文件夹里面的各种文件。

那么再看看mods-available文件夹里面呢,是各种模块的配置文件:

同样可以看到,里面有我们上次安装的,供python用的wsgi模块。

打开.conf文件,里面是基本的模块配置,如果有需要,可以自己修改配置。

打开.load文件,里面只有一句话,用于载入该模块。下图就是vhost_alias这个模块的load文件,干的事儿就是载入该模块。因为主配置文件Include了这个文件,所以也就相当于主配置文件载入了虚拟主机模块。

另外:载入模块有一个书写格式:

LoadModule func_module modules/mod_func.so  

func就是所谓的功能,例如现在的func就是vhost_alias。

这样一来就清楚了:

mods-available文件夹里面的文件,是所有准备着的、等待使用的模块。(如果没有你想要的,可以自己去下载。参考上文的 sudo apt-get install libapache2-mod-wsgi 命令)

mods-enabled文件夹里快捷方式,是所有已经激活的,现在就可以用的模块。模块一旦被链到了这个文件夹,就会生效。

a2enmod 其实就是把你要的模块生成一个快捷方式,然后放在mods-enabled文件夹里。

第二步:书写虚拟主机配置

虚拟主机功能开启了之后,就可以书写虚拟主机的具体配置了。也就是你想要的 s1.mysite.com 可以访问 s1文件夹,s2.mysite.com可以访问s2文件夹。

如下是配置文件:

<VirtualHost *:80>
ServerName www.mysite.com
ServerAdmin xx@xx.com WSGIScriptAlias / "/home/xx/django.wsgi"
<Directory "/home/xx">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory> Alias /static "/home/xx/static" <Directory /home/xx/static>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
#以上是www.mysite.com的配置,与上文的配置是一样的。

#一下两个是另外两个虚拟机的配置:
<VirtualHost *:80>
ServerName s1.mysite.com
ServerAdmin xx@xx.com
DocumentRoot "/home/xx/s1" <Directory "/home/xx/s1">
Options Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost> <VirtualHost *:80>
ServerName s2.mysite.com
ServerAdmin xx@xx.com
DocumentRoot "/home/xx/s2" <Directory "/home/xx/s2">
Options Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

这个配置文件写在 /etc/apache/http.conf 文件里就行。然后别忘了重启Apache。

最后一步:去你购买域名的地方,配置域名解析

去你购买的IPS提供商那,也就是买域名的地方,配置一下域名解析,使子域名可以解析到你的ip。

例如我是在万网上买的域名,在阿里云上买的机子和IP。设置如下:

图中的 记录类型 要选择 A主机记录就是你的子域名的名字,目前来说,也就是 s1.mysite.com,解析线路默认就行,记录值 表示的是你的 IP 地址。

这样设置好了之后,基本上1分钟就左右就可以生效。当子域名的请求到达这个IP后,Apache会根据虚拟主机的配置,来分发由谁来处理这个请求,也就实现了二级域名的配置了。

django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)的更多相关文章

  1. python - django 项目部署 Ubuntu 服务器后接口访问一直 502 问题

    问题描述:最近有了一台 Ubuntu 的服务器,然后准备部署个项目,结果没想到部署的过程跟用 Centos 的时候还有点不一样,最后一步我是卡在了 uwsgi 这里,访问一直502,且可以访问项目的静 ...

  2. 000webhost虚拟主机绑定自定义二级域名

    作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=558 前言: 最近想给导航狗IT信息导航做一个文件服务器专门存放文件,以提供引用或下载.于是,我在000webhost上 ...

  3. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  4. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  5. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  6. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  7. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

  8. 项目部署到IIS后,明明存在某个文件,但是访问却返回404

    项目部署到IIS后,明明存在某个文件,但是访问却返回404,这是为什么呢,原因很可能是未添加MIME类型 比如我的文件名是“iconfont.woff” 打开IIS,点击对应的项目,右面展示的是下图 ...

  9. 在Apache中利用ServerAlias设置虚拟主机接收多个域名和设置域名泛解析

    ServerAlias:服务器别名,在Apache中可以用于设置虚拟主机接收到个域名,也可以用于接收泛解析的域名.具体的设置方法如下: 一.用于设置虚拟主机接收多个域名 一个虚拟主机常常会接收多个域名 ...

随机推荐

  1. java之泛型潜在错误

    如果使用带泛型声明的类时,没有传入类型参数,那么这个类型参数默认是声明该参数时指定的第一个上限类型,这个类型参数被称为raw type(原始类型 ). eg:     public class Lis ...

  2. Codevs 2370 小机房的树

    2370 小机房的树 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为 ...

  3. Android学习7--日志信息的使用

    在代码的调试中,日志信息是必不可少的,关于日志信息的使用,接下来,小编简要的说明一下: 日志分为几种:Verbose:从字面上解释,verbose为冗长的,啰嗦的,所以verbose日志信息输出的内容 ...

  4. 支付宝开发(一)-认识php openssl RSA 非对称加密实现

    获取支付宝公钥 本地服务器生成私钥和公钥 运用php中openssl相关函数加密解密验证身份 以下是php中openssl相关函数实现的验证,来自php官方demo //需要签名的数据 $data = ...

  5. python之PIL安装问题

    ··在windows安装模块 总是出现问题,今天安装PIL的 首先提示我的是pip命令出错,这应该是当你安装Python2.7的时候 并没有把pip模块添加进去 导致出现了这样的一个问题,为了省事,我 ...

  6. HDU1004 (数组元素出现最多)

    HDU1004 思路:求数组中出现次数最多的那个元素: 遍历数组元素,找出每个元素出现的次数 Input Input contains multiple test cases. Each test c ...

  7. __attribute__ 详解

    GNU C的一大特色(却不被初学者所知)就是__attribute__机制.__attribute__可以设置函数属性(Function    Attribute).变量属性(Variable Att ...

  8. vs2010 使用SignalR 提高B2C商城用户体验(三)

    vs2010 使用SignalR 提高B2C商城用户体验(三) 上一章节,我们的web即时通讯已经可以实现跨域了,但针对我们的需求,还希望,一些客户端程序可以和我们的web用户,在线聊天,所以到Sig ...

  9. 第 11 章 桥梁模式【Bridge Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天我要说说我自己,梦想中的我自己,我身价过亿,有两个大公司,一个是房地产公司,一个是服装制造业,这两个公司都很赚钱,天 ...

  10. 【poj3693】Maximum repetition substring(后缀数组+RMQ)

    题意:给定一个字符串,求重复次数最多的连续重复子串. 传说中的后缀数组神题,蒟蒻真的调了很久才对啊.感觉对后缀数组和RMQ的模版都不是很熟,导致还是会有很多各种各样的小错误= = 首先,枚举重复子串的 ...