Apache-2.2

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

  • February 12, 2015

我有一個 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

似乎 using<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 的抽象和一些概念,但我發現很難知道從哪裡開始。

如果有替代方法或我缺少的概念,請告訴我。

VirtualHost是您想要用來提供 HTTP 和 HTTPS 以及各自不同內容的內容。如果您有一個監聽埠 80 而另一個監聽埠 443,那麼使用相同的名稱不是問題。您不需要SSLDisableVirtualHost埠 80 上執行此操作。

您有一個VirtualHost處理 HTTPS 流量,另一個處理 HTTP 流量。您可以通過設置DocumentRoot選項或使用Directory等來提供不同或相同的內容。

引用自:https://serverfault.com/questions/667165