amazon-ec2之将 memcached 和 beanstalk 绑定(bind)到 EC2 实例上的外部 IP
我有一个正在运行的 EC2 服务器,它有一个弹性 IP 地址,它正在愉快地运行 memcached 和 beanstalkd,分别在端口 11211 和 11300 监听外部 IP。我使用服务器的 AMI 来升级大小,当服务器重新启动时,memcached 和 beanstalkd 都没有运行。为 memcached 带来麻烦,因为这是要重新启动的 init.d,但 beantalkd 是作为守护进程从命令行运行的。
但是,几个小时后,我似乎无法弄清楚如何让它们重新启动并运行。
对于 memcached,配置文件如下:
# Default connection port is 11211
-p 11211
# Specify which IP address to listen on. The default is to listen on all IP addresses
-l <EXTERNAL IP ADDRESS>
当我尝试从命令行以 root 身份运行 memcached 时:
memcached -d -m 1024 -u root -l <EXTERNAL IP ADDRESS> -v -p 11211
我得到:
bind(): Cannot assign requested address
failed to listen on TCP port 11211: Cannot assign requested address
然而,当我查看 netstat 时,没有任何内容绑定(bind)到该端口:
netstat -ant | grep LIST
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
如果我 grep 进程列表,则没有其他内存缓存在运行。
Iptables 报告如下:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:11300 state ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:11211 state ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
EC2 实例使用与原始服务器相同的安全组,因此所需的端口已打开。
最后,可能提示 ifconfig IP 地址与弹性 IP 地址不同。如果我尝试监听 inet 添加: Bcast:memcached 服务运行并绑定(bind)但是我似乎无法通过弹性 IP 访问 memcached。
我一定是在做一些对你来说显而易见的蠢事。感谢您的帮助。
请您参考如下方法:
绑定(bind)到应该公开的 0.0.0.0。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。