我已經將我的伺服器設定為 nginx 伺服器,如下所示:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
server_name example.com;
... other things down here..
}
如何從 SSL 中排除目錄?例如,在 /static/tour 下,我有一個解釋 Web 應用程式的導覽,無需對其進行加密。
作業系統:Ubuntu 10.04
答案1
我認為您要么想要設置另一個伺服器配置來偵聽端口 80,定向到同一文檔根(並確保應用程式根據所訪問的 URL 強制使用 SSL 或非 SSL,以便用戶可以'不要只是從HTTPS 中刪除“ S”),或使用以下內容:http://ariejan.net/2011/10/22/automatically-switch- Between-ssl-and-non-ssl-with-nginx-unicorn-rails
答案2
這是不可能的。 SSL 請求是加密的,這意味著伺服器在解密請求之前甚至無法得知 URI 的樣子。無法告訴客戶端應該使用非 SSL 協定發送對某個子目錄的請求。
正如 Demelziraptor 所說,您可以設定兩個虛擬主機,一個在連接埠 443 上使用 SSL,另一個在連接埠 80 上不使用 SSL。
您可以輕鬆設定重寫規則,以便/static/tour
SSL 虛擬主機上的任何請求都會導致重定向到非 SSL 虛擬主機上的相同頁面,反之亦然,在非 SSL 虛擬主機上重定向回 SSL 虛擬主機。