![允许远程连接 memcache 服务器](https://linux22.com/image/713404/%E5%85%81%E8%AE%B8%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5%20memcache%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我的 memcache 服务器已启动并运行服务器 A。
service memcached start
memcached -d -u nobody -m 512 -p 11211 127.0.0.1
chkconfig --list | grep memcache
chkconfig memcached on
我还有一个网络应用程序服务器 B(不同的 IP)。我该如何配置服务器 A对于 memcache,允许来自服务器 B?
答案1
默认情况下,memcached 仅服务于本地主机,否则它无法抵御更广泛的网络/互联网,因此不安全。正如您在发布的输出中看到的那样,它目前仅服务于 127.0.0.1 上的连接:
memcached -d -u nobody -m 512 -p 11211 127.0.0.1
因此,您需要编辑配置文件并为其指定要服务的网络接口的 IP 地址。为此,请转到配置文件所在的目录。在 ubuntu 上,这是:
cd /etc/
然后在您选择的编辑器中打开配置文件:
sudo nano memcached.conf
然后向下滚动直到找到以下内容:
# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1
现在只需127.0.0.1
用您的网络接口的 IP 替换并保存。
现在您需要重新启动 memcached 服务器:
sudo service memcached restart
Memcached 现在将仅处理通过该 IP/网络接口接收的请求。您可以使用以下命令进行测试:
ps aux | grep memcached
如果一切顺利,您应该会看到您在配置中输入的 IP 而不是本地主机。
答案2
在 Amazon ec2 Linux 中
打开-sudo vi /etc/sysconfig/memcached
将行 - OPTIONS="-l 127.0.0.1,::1" 替换为行 - OPTIONS="-l 0.0.0.0,::1"