本地端測 Firebase Hosting

解決本地端測試 Firebase Hosting 的兩個大問題:https://localhostrewrite 到 functions

安裝 https://localhost

我找到最簡單的方法,就是用 nginx 的 Windows 版本,下載回來後,解到一個自己喜歡,或看起來風水比較好的目錄去。

接下來要用 openssl 產生憑證,我是在 Windows 10 的Alpline WSL裡面,這樣最快了:

apk add openssl openssl req -new -x509 -sha256 -days 3650 \ -newkey rs a:2048 -keyout ./nginx.key \ -out ./nginx.crt -nodes \ -subj '/C=TW/ST=Taiwan/L=Taipei/O=demo org /OU=demo org unit/CN=localhost'

會在目錄下產生兩個檔案,複製到 nginx 的 conf 目錄底下。

編輯 nginx.conf:

server { listen 80; server_name localhost; return 301 https://$host$request_uri; } server { listen 443; ssl on; ssl_certificate D:/nginx/conf/localhost.crt; ssl_certificate_key D:/nginx/conf/localhost.key; ssl_ciphers HIGH:!aNULL:!MD5; server_name localhost; charset utf-8; location ~ /ken73chen/search { if ($query_string ~ "^q=(.*)$"){ rewrite ^ /ken73chen/index.html?q=$arg_q? last; } } location ~ /ken73chen/\d+/\d+/(.*\.html)$ { proxy_pass https://oolala.xyz; } rewrite ^/ken73chen/\d+/\d+/$ /ken73chen/index.html last; rewrite ^/ken73chen/js/(.*)/(.*\.js)$ /ken73chen/js/$2?$1 last; rewrite ^/ken73chen/css/(.*)/(.*\.css)$ /ken73chen/css/$2?$1 last; rewrite ^/ken73chen/search/(.*)$ /ken73chen/index.html?q=$1 last; location / { root D:\myproject\firebase\public; index index.html index.htm; } }

重點是!

我的目錄 /ken73chen/0000/00/xxxx.html 是 rewrite 到 functions 去的,我的處理方式是用 proxy_pass 的設定,上述目錄就回到 Firebase 去。

這樣就沒辦法在自己的電腦測 functions 了,因為我目前 functions 用的基礎,對我是不會有困擾。