我試圖讓CORS根據我們系統中存在的客戶列出的域名白名單。我們有一個白色標籤的產品,讓我們的公司CNAME將定製域添加到我們的系統中。我們需要通過在Access-Control-Allow-Origin: http://some.custom.domain
標題中添加來自HaProxy的響應,允許動態地允許Origin
來自任何這些自定義域。HaProxy動態列表/地圖
我一直在閱讀有關從haproxy加載列表/地圖的不同方式,但我只是沒有解決的最佳實施。我已經想出了大概3種可能的方式,但我想看看是否有其他人也有一些洞察力。我的選項到目前爲止:
存儲一個map我可以找到添加標題時可用的域。如何填充此映射文件是目前的問題。我想我可以在啓動時通過LUA進行API調用來創建文件?或者它可能是一個NFS掛載的文件?每次將新域添加到我們的系統時,我們都必須重新加載,無論是通過相同的api調用還是直接轉到套接字上的地圖api。
使用LUA從現場請求通過HAProxy的每一個任務的API來驗證,如果在
Origin
傳遞的域名是合法的,並添加標題。有可能使用Memcached的最少開銷假設我們可以找到一個LUA用於memcached的客戶端庫。可能實施某種基於DNS的解決方案,我們運行我們自己的DNS服務器來解析這些自定義域,並讓HaProxy對此進行查找。我不知道這是否可行,我只是知道haproxy具有DNS功能。奇怪的是,我們實際上並不想解決知識產權問題,我們只是想要一個「是」或「否」的答案。
是否有其他人知道這個問題的明顯解決方案?我正在尋找易於實現的方法,但最終將請求本身的開銷降至最低,因爲這需要在每個請求上發生,並且標頭爲Origin
。
任何洞察讚賞!
雅我選擇了列表方法。實際上我有LUA註冊一個任務,在啓動時從API加載列表併爲每個域寫入一個ACL。謝謝! – brad