Apache:SSL和非SSL(没有VirtualHosts?)

我有一个Web服务器,并有两个文件夹,我想对待不同。

本地文件系统上的一个文件夹应该使用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的抽象概念和一些概念,但是我发现很难知道从哪里开始。

如果有另一种方法,或者我缺less一个概念,请让我知道。

VirtualHost是你想用来为HTTP和HTTPS提供服务和不同的内容。 如果你有一个在端口80上听,另一个在443上,那么具有相同的名字不是问题。 您不需要在端口80上的VirtualHost上执行SSLDisable

您有一个VirtualHost处理HTTPSstream量,另一个处理HTTPstream量。 您可以通过设置DocumentRoot选项或使用Directory等服务不同或相同的内容。