Apache vhosts 配置:主机名而不是 IP 地址

Apache vhosts 配置:主机名而不是 IP 地址

我有一个由外部提供商托管的域名 ( example.com)。我将子域名sub.example.com指向我的 ubuntu 服务器(12.04,带有 apache2)。

在我的 ubuntu 服务器上,我有一个像这样的 vhost 设置。其余配置基本上是 apache 2 标准:

<VirtualHost *:80>
        ServerName sub.example.com
        ServerAlias sub.example.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/sub.example.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        WSGIScriptAlias / /home/application/sub.example.com/wsgi.py

        <Directory /home/application/sub.example.com>
                <Files wsgi.py>
                        Order allow,deny
                        Allow from all
                </Files>
        </Directory>
</VirtualHost>

当我http://sub.example.com在浏览器中输入时,我的应用程序显示正常。但域名被我的服务器的 IP 地址替换了。我是否必须在其他地方配置我的服务器以在我的域名下提供其所有内容sub.example.com

这是我的 wsgi.py 文件:

import os
import sys
from os.path import abspath, dirname, join


PROJECT_ROOT = abspath(dirname(dirname(__file__)))
GIT_ROOT = abspath(dirname(dirname(PROJECT_ROOT)))

sys.path.insert(0, join(GIT_ROOT, 'venv', 'lib', 'python2.7', 'site-packages'))
sys.path.insert(0, PROJECT_ROOT)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

答案1

根据 DTest 的提示,我发现这只是来自我的域名提供商的重定向。我的域名提供商只是重定向,而不是将真正的 DNS A 记录条目输入到 sub.example.com。添加了 DNS A 记录,现在“它起作用了!”。谢谢大家!

相关内容