我有一个正在运行的弹性IP地址的EC2服务器,它正在愉快地运行memcached,beanstalkd分别在端口11211和11300侦听外部IP。我用服务器的AMI来升级大小,当服务器重新启动时,memcached和beanstalkd都没有运行。因为这是init.d重新启动,但是从命令行运行的守护进程beanstalkd运行memcached。将memcached和beanstalk绑定到EC2实例上的外部IP
然而,几个小时后,我似乎无法弄清楚如何让他们再次运行。
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>
当我尝试和运行memcached作为root的命令行:我得到
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,没有任何东西已经绑定到那个端口上:
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进程列表,没有其他的memcached运行。
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服务运行并绑定,但是我似乎无法通过弹性IP访问memcached。
我必须对你做一些愚蠢和明显的事情。谢谢你的帮助。