Apache:SSL 和非 SSL(没有虚拟主机?)

Apache:SSL 和非 SSL(没有虚拟主机?)

我有一个网络服务器,有两个文件夹我想以不同的方式处理。

本地文件系统上的一个文件夹应该使用 SSL,而另一个文件夹不应该使用,例如:

/path/to/ssl/site
/path/to/nonssl/site

我已经研究过参数,但你无法在该级别<Directory>禁用。SSLEngine

[root@host /]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: Syntax error on line # of /some/config/file.conf:
SSLEngine not allowed here

似乎使用<VirtualHost>给出了这种粒度,但我会使用相同的主机名,因此我有点困惑。(匹配通配符*)

# need to create a virtualhost for each Non-SSL folder?
<VirtualHost *:80>
  SSLDisable
  ...
  ...
</VirtualHost>

# need to create a virtualhost for each SSL folder?
<VirtualHost *:443>
  SSLEngine on
  ...
  ...
</VirtualHost>

另外,如果我要添加和附加<Directory>,它实际上必须是吗<VirtualHost>

我知道我可能不理解 Apache 的抽象和一些概念,但我发现很难知道从哪里开始。

如果有其他方法或我遗漏的概念,请告诉我。

答案1

VirtualHost是您想要用来同时提供 HTTP 和 HTTPS 以及每种服务的不同内容的。如果您有一个监听端口 80,另一个监听端口 443,那么使用相同的名称就不是问题。您无需SSLDisableVirtualHost端口 80 上执行此操作。

您有一个VirtualHost处理 HTTPS 流量的服务器,另一个处理 HTTP 流量的服务器。您可以通过设置选项DocumentRoot或使用Directory等方式提供不同或相同的内容。

相关内容