• django 项目部署在 Apache 后, 设置二级域名(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 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会根据虚拟主机的配置,来分发由谁来处理这个请求,也就实现了二级域名的配置了。

  • 相关阅读:
    PSR
    php类与对象
    二进制、位运算及其用处
    安装LNMP笔记
    计算机基础
    Python3编写HFS(CVE2014-6287)检测脚本
    windows和iis对应版本关系
    phpStudy8.1.0.1配置子域名多网站
    Xml外部实体注入
    xss小游戏通关-全答案
  • 原文地址:https://www.cnblogs.com/lipijin/p/4204428.html
Copyright © 2020-2023  润新知