所以我可能会对这里发生的事情缺少一些基本的了解,但我无法让它发挥作用。我有两个django网站,我希望能够在同一个盒子上托管它们,都在端口80上。是否有一些魔法可以让它正常工作?这是我的网站可用/默认文件的样子:
<VirtualHost *:80>
WSGIScriptAlias / /path/to/proj/apache/django.wsgi
AliasMatch ^/([^/]*\.css) /path/to/proj/static/
Alias /media /path/to/proj/static/
Alias /static/ /path/to/proj/static/
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
WSGIScriptAlias / /path/to/otherproj/apache/django.wsgi
ErrorLog ${APACHE_LOG_DIR}/error2.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
显然这不起作用,因为导航到网站点击第一个,它永远不会到第二个。所以我的问题是,我如何设置它以便我可以在端口80上托管2个网站。也许我可以像localhost / site1和localhost / site2那样做,并想出来,但无论我尝试什么,我都可以'似乎可以让它发挥作用。
我玩过ServerName属性,但我真的不明白它是如何工作的,设置它似乎没有改变那个机器的ip只显示第一个网站,我不知道使用ServerName会影响任何事情。
任何建议,或者如果我需要提供更多信息,请告诉我。
另请注意,如果我将第二个更改为端口8080,它们都可以工作,但是当我这样做时,我似乎无法将域名置于myip:8080之上。
答案 0 :(得分:1)
我认为这里没有什么可解释的。您只需要指定每个虚拟域的名称。
注意:不推荐使用NameVirtualHost
<VirtualHost *:80>
ServerName site1.ltd
WSGIScriptAlias / /path/to/proj/apache/django.wsgi
AliasMatch ^/([^/]*\.css) /path/to/proj/static/
Alias /media /path/to/proj/static/
Alias /static/ /path/to/proj/static/
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName site2.ltd
WSGIScriptAlias / /path/to/otherproj/apache/django.wsgi
ErrorLog ${APACHE_LOG_DIR}/error2.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>