Apache-2.2

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

  • January 28, 2013

我有一個example.com由外部提供商託管的域 ( )。我將子域定向sub.example.com到我的 ubuntu 伺服器(帶有 apache2 的 12.04)。

在我的 ubuntu 伺服器上,我有一個像這樣的虛擬主機設置。其餘配置基本上是 apache 2 標準:

<VirtualHost *:80>
       ServerName sub.example.com
       ServerAlias sub.example.com
       ServerAdmin admin@sub.example.com
       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)

按照 DTest 的提示,我發現只有來自我的域提供商的重定向。我的域提供商只是重定向而不是真正的 DNS A 記錄條目到 sub.example.com。添加了 DNS A 記錄,現在“它可以工作了!”。多謝你們!

引用自:https://serverfault.com/questions/423313