2012-03-09 32 views
1

如果我們在可以有多個IP地址的主機上運行(它實際上是具有彈性IP的EC2),是否可以從django中選擇要使用的傳出IP地址?從django選擇傳出IP?

即使這只是一個隨機選擇,它會沒事的。

編輯:道歉,我上面不清楚。這些請求是從Python內部創建的新的傳出調用,而不是對客戶端請求的響應 - 很高興爲了讓它回落到任何管道上。

回答

0

我想對於Web應用程序的響應,服務器總是要使用一個連接套接字,所以如果請求來到IP地址X,響應將在同一個TCP連接中發送,並將源自相同的地址X即使主機也具有地址Y和Z.另一方面,如果您的應用程序在其操作過程中創建了另一個TCP連接,則可能會將該套接字綁定到您想要的任何主機IP地址上。如果您使用的是python的套接字模塊,您可以通過在socket.create_connection()調用中指定source_address參數來完成。不幸的是,並非所有的高級圖書館都可能允許這種級別的控制。

+0

是的,我道歉並不清楚。傳出連接不會響應請求,它們將成爲新的傳出TCP連接。我會調整這個問題。任何想法如何可以從python指定? – Stuart 2012-03-09 09:22:09

+0

@Stuart:如果你有Unix套接字API,你可以用bind()調用。我已經添加了一個可能的Python綁定到我的答案,但我不知道EC2上是否有這個綁定。 – che 2012-03-09 10:47:12