三月 2, 2019 | 伺服器和Devops
【Traefik教學】用Traefik一次處理好Mixed Content的網站問題
Traefik的好用這裡就不多說囉,若你還不知道這個強大的反向代理工具,可以參考我寫的這篇文章:【網站架設】簡易方便的反向代理工具Traefik,而這一篇文章,主要是來解決長久以來我面臨到的小問題,Mixed Content。
前言
Traefik的好用這裡就不多說囉,若你還不知道這個強大的反向代理工具,可以參考我寫的這篇文章:【網站架設】簡易方便的反向代理工具Traefik,而這一篇文章,主要是來解決長久以來我面臨到的小問題,Mixed Content。
Mixed Content問題
什麼是Mixed Content呢?中文叫做“混合內容”,想要知道詳細的解釋,可以參考這篇文章混合內容介紹,這裡簡單介紹,“主要就是當使用者瀏覽HTTPS的網頁內容時,裡面還有HTTP的內容”。
HTTPS的網頁就代表著使用者與伺服器之間的連線就會用TLS加密,以防受到竊聽或中間人攻擊,當網頁是Mixed Content的情況下,相對起來就較容易造成攻擊與竊聽。
瀏覽器出現的錯誤
當然,在有Mixed Content的狀況下,要達到網頁常看到的綠色鎖頭就有困難囉,但很多時候內容可能不是我們想改就可以改掉或處理好的,這個時候Traefik有個好用的功能,可以一次解決囉。
使用Traefik一行解決Mixed Content
若你有在用Traefik,一定知道Traefik既輕巧又方便,我這裡主要使用Docker來跑所有的網站服務,因此,搭配到Traefik可以使用對應的Label與Docker-compose。即可對容器展開控制。
以下是Docker設定Traefik的範本
webapp:
image: hellosanta/php4drupal:php7.0-apache
networks:
- ReverseProxy
labels:
- "traefik.frontend.rule=Host:myawesomedomain.com"
- "traefik.enable=true"
- "traefik.frontend.headers.contentSecurityPolicy=upgrade-insecure-requests"
# - 加入上面這一行就可以囉
- "traefik.port=80"
restart: always
links:
- mysql:mysql
- memcache:memcache
加入以後,就可以發現奇妙的事情發生了,所有有Mixed Content的問題,一次解決。
結論
這個問題一開始最讓人頭痛的地方主要是從HTTP轉到有HTTPS,若當時有一些原因,讓路徑是走HTTP,就會讓人非常頭痛處理。有了Traefik,可以一個label就處理完畢,不需用任何複雜的設定即可完成,享用囉:)