認真來說,你的理解沒有錯。
基本 client 是無法直接POST到B、C主機上
畢竟它並沒有對外。
正常一般來說,會利用唯一對外的主機(A)。來內網運行。
也就是說你的AJAX要先打入A主機,由A主機來去跟BC主機請求。
感謝大大回覆
這樣的話 是不是loading都變成在A主機上
原本只是在client端
所以你們要做這樣的架構的主要原因是甚麼?
@小魚 大大
主要是要前後端分離
正常一定是這樣的。
但你會這樣安排,不是為了安全性嘛??
沒錯大大
感覺就是在performance和security做考量
主要這個專案是包給外面廠商
而外面廠商堅持要把B主機對外
他的說法
在B主機的後端就能做到防範攻擊
不需要放在內網
而且外部如果能從B主機抓到API回傳的資料
從A主機下手也可以抓到擺在內網的B主機資料
所以我很疑惑
想上來請問一下各位大大
這個很難說誰對誰錯。
基本上來說,BC都內網的。相對的就做不太到流量分離。全由A主機來承所有的流量。且也會在無形中加重了A主機的負擔。
但這也是有其好處。因為大多數來說,不會去影響到BC主機。
因為一般被攻擊的話。A主機會先掛。
不過這也得看你們的API機制寫法是如何的。也會因為API的寫法不好。
雖然是交由A主機來跟B請求的API。但也有可能會因為這樣而讓B主機掛掉。
不過目前看你的規劃分佈。理論上來說,如果是我的話,我也會將B主機對外。
因為你B安排的是API的串接。認真來說,它才是主要承擔的角色。
如果將其對內而由A來請求。反而會失去B主機的角色特性。
且正統的前後端分離,認真來說,前端要處理的事並不多。主要只是HTML的應用處理。我推測你的廠商的規劃。
是將A拿來當主要的WEB SERVER但無後端角色。
B才是主要的後端角色。
所以A只單純的負責前端的事。B才是處理後端的事。
這樣的話,我也會認為AB都要對外開放才行。
且正統的前後端分離,認真來說,前端要處理的事並不多。主要只是HTML的應用處理。我推測你的廠商的規劃。
是將A拿來當主要的WEB SERVER但無後端角色。
B才是主要的後端角色
確實是這樣沒錯
感謝大大的解惑
我只是想說 能擺在內網不是比擺在外網更好 更安全?
只不過被廠商說那是傳統的想法XDD
看起來應該是可以?
但是這牽扯到網路怎麼設定,
然後要用內網IP去連,
但是如果防火牆跟防護沒做好,
就算這樣的架構人家還是可以攻進來...
不行啦,他這明顯是前後端分離。
A主機放前端,那你要怎麼打ajax連那個連不到的B主機?
最簡單就reverse proxy導到B而已。
感謝兩位大大的回覆
@force 大大 說的沒錯
我們是用前後端分離的架構
如果是用reverse proxy
那我們call ajax的URL是不是就要call A主機上的
再透過A主機導向
如果把B主機放在外網
相對而言是不是安全性就要考慮的周全
目前B主機有做身分驗證 token...之類的一些防範
所以不是從A主機連喔?
A主機不是網頁嗎?
A可以連到B跟C吧?
恩這架構要思考一下,
好像真的沒有這樣做過...
恩恩,
對..使用者端應該要能夠連到Server,
(除非A也來個Server再轉到B...)
網路怎麼防護的部分我也不是很熟,
該回去複習一下雷神大大上的課了 XD
@小魚大大
依個人所知
因為ajax是client端發送
所以發送的origin為使用者的瀏覽器
而非連過去瀏覽的"A主機"
所以 由於B在內網 使用者便會抓不到資料
不知道小弟有沒有理解錯誤
還望其他大大指點