我有一个网络服务器,有两个文件夹我想以不同的方式处理。
本地文件系统上的一个文件夹应该使用 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,那么使用相同的名称就不是问题。您无需SSLDisable
在VirtualHost
端口 80 上执行此操作。
您有一个VirtualHost
处理 HTTPS 流量的服务器,另一个处理 HTTP 流量的服务器。您可以通过设置选项DocumentRoot
或使用Directory
等方式提供不同或相同的内容。