如何将 AWS 网络负载均衡器与自定义 python 服务器一起使用
How to use AWS Network Load Balancer with custom python server
我正在尝试在 AWS 上设置 python 服务器。
我想通过弹性负载平衡器访问此服务器。但是,我在解决我的问题时遇到了一些困难。
到目前为止我采取的步骤如下。
我创建了一个新的 EC2 实例,通过 ssh 连接到它并创建了我的服务器并启动了它。
该服务器的代码如下:
import socket
HOST = '127.0.0.1'
PORT = 3002
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
print("listening")
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
然后我创建了一个新的目标组并向它注册了这个ec2实例。目标组设置为与服务器 (3002) 相同的端口。
接下来,我创建了一个网络负载平衡器。这个负载均衡器在端口 3002 上设置了一个侦听器规则转发到我设置的目标组。
最后,我在我的机器上创建了一个本地客户端 python 来与服务器通信。
该客户端的代码如下:
HOST = DNS name for load-balancer
PORT = 3002
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
我的想法是客户端将连接到端口 3002 上的负载均衡器。在此端口上具有侦听器的负载均衡器将转发到目标组,该组也使用端口 3002。因此, ec2 实例将在此端口上接收连接并能够处理它。但是,什么也没有收到,连接超时。
安全组被配置为允许所有端口上的所有 TCP 流量(目前我正在尝试解决这个问题)
此外,这只是我在尝试学习如何使用负载平衡器并从客户端连接。我不打算在更大的项目中使用它 :) 任何对我的想法出错的地方的帮助将不胜感激!
您的 Python 应用仅侦听来自本地主机的连接。改变这个:
HOST = '127.0.0.1'
为此:
HOST = '0.0.0.0'
我正在尝试在 AWS 上设置 python 服务器。 我想通过弹性负载平衡器访问此服务器。但是,我在解决我的问题时遇到了一些困难。 到目前为止我采取的步骤如下。
我创建了一个新的 EC2 实例,通过 ssh 连接到它并创建了我的服务器并启动了它。
该服务器的代码如下:
import socket
HOST = '127.0.0.1'
PORT = 3002
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
print("listening")
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
然后我创建了一个新的目标组并向它注册了这个ec2实例。目标组设置为与服务器 (3002) 相同的端口。
接下来,我创建了一个网络负载平衡器。这个负载均衡器在端口 3002 上设置了一个侦听器规则转发到我设置的目标组。
最后,我在我的机器上创建了一个本地客户端 python 来与服务器通信。
该客户端的代码如下:
HOST = DNS name for load-balancer
PORT = 3002
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
我的想法是客户端将连接到端口 3002 上的负载均衡器。在此端口上具有侦听器的负载均衡器将转发到目标组,该组也使用端口 3002。因此, ec2 实例将在此端口上接收连接并能够处理它。但是,什么也没有收到,连接超时。
安全组被配置为允许所有端口上的所有 TCP 流量(目前我正在尝试解决这个问题)
此外,这只是我在尝试学习如何使用负载平衡器并从客户端连接。我不打算在更大的项目中使用它 :) 任何对我的想法出错的地方的帮助将不胜感激!
您的 Python 应用仅侦听来自本地主机的连接。改变这个:
HOST = '127.0.0.1'
为此:
HOST = '0.0.0.0'