iT邦幫忙

0

多支API服務怎麼共用同一個Port?

  • 分享至 

  • xImage

大家好,

請問:我用Python的Flask套件,寫了兩支API在公司的電腦裡,兩支API個別提供資料庫存取的多個服務。兩支API的url的開頭分別是:

  1. http://xxx.xxx.x.xx:9000/<API位置>
  2. http://xxx.xxx.x.xx:9001/<API位置>

這樣可以運作正常,但當我用同一個Port時,其中一支就會無法啟動,有什麼方法可以讓多支API共用Port?謝謝

slime iT邦大師 1 級 ‧ 2019-01-09 19:13:36 檢舉
找一個當主要的 API , 然後用到某些功能時, 再去呼叫另一個 API 的資料.

比如外面連線到 :9000 , 而需要某些資料時, :9000 這邊的 API 再轉送 :9001 去抓資料.
小魚 iT邦大師 1 級 ‧ 2019-01-09 19:39:58 檢舉
這也是一個解法 XD
kikulu iT邦研究生 4 級 ‧ 2019-01-09 19:44:54 檢舉
用反向代理
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
froce
iT邦大師 1 級 ‧ 2019-01-09 18:04:05

去學計網,你就會發現你問的是啥等級的問題了。
兩個不同程式實例有辦法共用port?

0
小魚
iT邦大師 1 級 ‧ 2019-01-09 18:21:10

以現在的架構,
這是不可能的任務,
解決方法就是你自己發明新的作業系統、新的網路、新的...
(只有小魚不能換新的)

看更多先前的回應...收起先前的回應...
小魚 iT邦大師 1 級 ‧ 2019-01-09 18:22:46 檢舉

不過如果要兩隻API放在同一個Port,
換個思維,
你可以把兩個API合併成一個,
(隨便你怎麼合併)
我猜上級的需求是不是這樣?

hsc01 iT邦新手 5 級 ‧ 2019-01-09 18:55:27 檢舉

有想過要合併,但由於其他同事用Django開發API,我用Flask,不同套件,要合併要重寫程式..

小魚 iT邦大師 1 級 ‧ 2019-01-09 19:39:33 檢舉

總之如果一定要在同一個Port就只有合併一條路了,
上級不會管你怎麼合併的,
只會管你有沒有做到他的要求.

KYCPG iT邦新手 4 級 ‧ 2020-09-07 21:20:41 檢舉

情人眼裡容不下一粒沙,PORT號也是.
硬擠的結果不是你死就是我亡,像極了愛情

小魚 iT邦大師 1 級 ‧ 2020-09-07 22:55:49 檢舉

可以開後宮嗎?
不過這問題好像很久之前的..

0
kikulu
iT邦研究生 4 級 ‧ 2019-01-09 19:46:08
hsc01 iT邦新手 5 級 ‧ 2019-01-10 00:28:01 檢舉

謝謝。那如果我沒有domain呢?
如果根據這篇文章用法,那應該會是用http://192.168.x.xx:80/.. 對外,然後透過nginx假設再分派給http://192.168.x.xx:9000/ 、 http://192.168.x.xx:9001/ 兩個不同的port,打80 port時會帶例如example1.com、example2.com兩個domain進來,但我沒有買domain就沒辦區辨?

kikulu iT邦研究生 4 級 ‧ 2019-01-10 09:39:24 檢舉

試試server_name _;

fillano iT邦超人 1 級 ‧ 2019-01-11 10:38:42 檢舉

你可以設定不同api在localhost(127.0.0.1)的不同port監聽。然後透過nginx或任何有rewrite功能的伺服器,把符192.168.x.xx:80/[不同api目錄]對應到localhost的不同port。

0
cancelpc
iT邦新手 3 級 ‧ 2019-01-14 13:29:07

caddy 當 proxy server。
https://caddyserver.com

設定檔內容:

localhost, xxx.xxx.x.xx {
    ...
    proxy /ap1 xxx.xxx.x.xx:9000 {
        transparent
    }
    proxy /ap2 xxx.xxx.x.xx:9001 {
        transparent
    }
}
0
rew87516
iT邦新手 4 級 ‧ 2019-01-16 10:08:44

再寫一個API對外
然後用那個API連接你和你眾多同事的function如何

我要發表回答

立即登入回答