django 项目部署在 Apache 后, 设置二级域名

上一篇文章简单说了怎么把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 [email protected]

    WSGIScriptAlias / "/home/xx/django.wsgi"
    <Directory "/home/xx">
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>

    Alias /static "/home/lisong/lisongsite2/beepnote/static"

    <Directory /home/lisong/lisongsite2/beepnote/static>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>
#以上是www.mysite.com的配置,与上文的配置是一样的。
#一下两个是另外两个虚拟机的配置:
<VirtualHost *:80>
    ServerName s1.mysite.com
    ServerAdmin [email protected]
    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 [email protected]
    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。设置如下:

图中的 记录值 表示的是你的 IP 地址,红框标出的 * 的意思是:将你的域名下的所有子域名都解析到这个IP上。

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

时间: 2024-10-10 10:12:40

django 项目部署在 Apache 后, 设置二级域名的相关文章

Django项目部署到Apache服务器

本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151. 将Django部署到Apache服务器的原因 Django中的runserver只是一个很简单的web服务器,启动服务器常见的方法是通过Putty执行命令.虽然调试和测试方便,然而如果关闭了Putty或者退出命令,服务就停止了,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择Apache. ubuntu上部署详

Django项目部署到Apache服务器上

之前写了把Django部署到XAMPP上,但是有bug,翻apache日志的时候发现会无法import _ssl,然后我就怒而直接装apache2了 配置方法大约和这篇文章差不多 安装必要的包 sudo apt-get update sudo apt-get install python-pip apache2 libapache2-mod-wsgi 然后还要保证WSGI模块在运行: sudo a2enmod wsgi 配置Python虚拟环境 为了不要修改系统python,事实上我怀疑系统py

CentOS 7 下Django项目部署教程(基于uwsgi和Nginx)

本文主要介绍如何在Linux平台上部署Django相关项目,关于Django项目的部署在互联网论坛上有很多的资料,笔者在查阅众多资料并经过实践后发现结果并不如意(或多或少总是遇到一些问题,往往与资料的预期不相符).在浏览了许多资料后笔者整理得出了部署Django项目的一般性方法,部署的方法有很多种,在此笔者选择了较为常用的基于uwsgi和Nginx的部署方案. 一.前提准备 部署前主要是需要做一些与服务器相关的准备工作,本次教程的服务器采用了阿里云的 CentOS 7.3 64位,当然作为资料学

项目部署时日志应该设置到哪个级别?

用户提出问题:项目部署时日志应该设置到哪个级别?,具体如下: 如题,日志框架用的是log4j,debug和info级别信息造成的性能影响大么,如何做性能监视 问题补充:谢大家的回答,日志做法和大家一样,只是对性能方面想多了点 通过互联网整理获得以下解决方法: =================1楼===================== 显示在控制台上的,info就够了,自己看的 还是debug吧 =================2楼===================== 线上的话就用i

Django 项目部署

Django 项目部署 原文地址:https://www.cnblogs.com/guozepingboke/p/10844060.html

解决tomcat中server.xml设置二级域名 [java.lang.OutOfMemoryError: PermGen space]

<Host name="XXX.XXX.XXX" debug="0" appBase="C:\\JavaWeb\\mytomcatServer\\XXX"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">  <Alias>

搭建二级网站遇到的问题:二.如何在阿里云主机中设置二级域名开通子网站

如何在阿里云主机中设置二级域名开通子网站,这个问题涉及到两步:一首先要做二级域名的A记录解析到服务器IP:二配置Apache的配置文件httpd.conf,让服务器识别该二级域名,然后重新加载httpd.conf文件即可: 二级域名的A记录解析到服务器IP 二级域名的A记录解析需要修改你域名DNS解析,比如我们要设置wordpress.webzhe.com到阿里云的主机IP,可以添加wordpress的二级域名(主机记录),选择A记录后,设置IP为阿里云的IP即可(主机记录值):通常这个解析是很

django项目部署后静态文件收集【解决admin后台静态文件丢失】

在部署完Django项目后,进行admin后台登录发现样式丢失,后台日志显示:js和css文件丢失 解决办法: 配置settings.py如下: #DEBUG打开时,app的静态文件默认从这里读取 STATIC_URL = '/static/' #静态文件根目录,当关闭DEBUG的时候admin从STATIC_ROOT获取静态文件,同时需要配置url STATIC_ROOT = ("f:/py_workspace/DJ/proj/people/static/") #Django部署在A

(转) 解决django项目部署到nginx+uwsgi服务器后 admin页面样式消失的问题

原贴地址:https://blog.csdn.net/qq_42571805/article/details/80862455 摘要 uwsgi为主要服务器,nginx为反向代理服务器部署完成之后发现django后台admin访问时无样式 解决方法如下 1.先打开django项目中settings.py文件(/blog/settings.py),添加STATIC_ROOT = ‘/home/blog/static/’ 2.打开nginx配置文件nginx.conf,添加如下图红色框中内容 3.运