关于php:使用Apache的单个IP在单个SSL证书上使用多个Django站点

关于php:使用Apache的单个IP在单个SSL证书上使用多个Django站点

从技术上讲,是否可以使用 Apache 在单个 IP 地址上使用单个 SSL 证书设置多个 Django 站点?

以下是我的 SSL 配置的摘录:

Alias /media/ x:/home/djang-apps/myapp
WSGIScriptAlias / x:/home/djang-apps/myapp/apache/django.wsgi

<Directory x:/home/djang-apps/>
   Order allow,deny
   Allow from all
</Directory>

我遇到的一个问题是,由于我只有一个 IP 地址,我只有 1 个虚拟主机,因此我如何引用包含每个 Django 网站的 css/images/js 等的各种媒体文件夹以及每个站点的 WSGIScriptAlias?

我目前有一个 *.foo.com 的通配符证书

因此我希望能够以这种方式添加多个站点:

website1.foo.com website2.foo.com website3.foo.com

答案1

您需要配置一个指令,并为每个不同的域NameVirtualHost配置一个。VirtualHost

例如:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName app1.foo.com
    ServerAlias www.app1.foo.com
    SSLEngine On
    SSLCertificateFile x:/path/to/cert.pem
    SSLCertificateKeyFile x:/path/to/cert.key
    # Any other basic config, logging, etc..
    DocumentRoot x:/home/djang-apps/app1
    # Any other document mapping; that Alias directive, WSGIScriptAlias, etc
</VirtualHost>

<VirtualHost *:443>
    ServerName app2.foo.com
    ServerAlias www.app2.foo.com
    SSLEngine On
    SSLCertificateFile x:/path/to/cert.pem
    SSLCertificateKeyFile x:/path/to/cert.key
    # Any other basic config, logging, etc..
    DocumentRoot x:/home/djang-apps/app2
    # Any other document mapping; that Alias directive, WSGIScriptAlias, etc
</VirtualHost>

Apache 在启动期间可能会对服务器名称指示发出一些抱怨,由于您使用的是通配符证书,因此您可以放心地忽略它(只需确保每个虚拟主机中的 SSL 指令都指向通配符证书)。

相关内容