[NAS] synology使用docker架設web service(反向伺服器,憑證設定)

買了synology ds918+一段時間了,最近有點時間,慢慢想把用到的一些服務跑在nas上,透過docker可以很快把相關服務佈建起來,覺得很方便,另外在設定上也遇到一些問題,在這邊也把遇到的問題跟解決方法跟大家分享:

一、我的環境與使用服務:

透過docker安裝了wordpress,然後以為可以搭配synology DSM 7.0自己的圖片服務Photos當作圖床,但似乎跟圖床的設計不同,後來發現有個chevereto,也可以用docker安裝,後續還想架設gitea,將開發相關的環境也建立上來。

當使用docker建立service之後,要存取這些服務勢必需要domain name,並且希望透過反向伺服器來分別轉向連結到這些服務的port上頭,另外如果希望使用https的話也需要有每個對應服務domain name的憑證。

二、domain name與sub domain

我申請的domain是透過namecheap代管,是免費的(當然申請domain是要錢的),可以自由設定需要的A, AAAA等record, 生效的時間也蠻快的,我是seednet申請的網域,設定成自行DNS代管模式,然後填上namecheap的server位址(freedns1.registrar-servers.com, freedns2.registrar-servers.com, freedns3.registrar-servers.com)

然後在namecheap頁面上,把subdomain都對應到nas的public ip上 (例如:gallery.easonhsu.idv, blog.easonhsu.idv.tw, …)

三、反向代理伺服器

synology ds918+灌好後,如果用80 or 443 port都會自動導到5000/5001 port,本來嘗試透過synology自己的nginx,修改他的設定,但是沒搞清出他的設定檔位置,服務從帶設定就又被洗掉了,另外也不想動到synology的設定,但也不想直接用synology的web service跟wordpress,還是想用docker的方式,後來發現安裝web station套件之後,80/443 port不會再被自動導向dsm,雖然我沒用到web station的http server服務,但是反向伺服器的設定可以正常符合我期望的行為

到控制台 > 登入入口 > 進階 > 反向伺服器,設定好domain name會對應到哪個localhost的port就可以了

四、https憑證

到安全性 >.憑證 > 新增憑證 > 從Letsencrpyt取得憑證,如果web station有安裝好並且domain name有設定到nas的ip,能透過domain name連到nas,應該可以申請成功,申請完之後,你會有個預設憑證,另外如果你設定多個憑證要對應到內部的docker service,則還需要設定對應,否則雖然設定了反向伺服器連到對應的docker服務了,但是憑證會是錯誤的,會在瀏覽器出現很礙眼的不安全提示,如下可以在右上角的設定按鈕設定哪個server對應到哪個憑證,在反向伺服器頁面設定的server也會在這裡出現,很方便。

發佈留言