Memcached是一个开源的分布式内存对象缓存程序,其主要作用是通过在内存中缓存数据和对象来提高和加快动态Web应用程序的性能。
Memcached还用于缓存整个数据库表和查询,以提高数据库的性能。它是唯一可免费使用的缓存系统,目前已经被YouTube、Facebook、Reddit、Drupal、Zynga等许多大型网站使用。
需要注意的是,如果配置不正确, Memcached可能会遭受拒绝服务攻击。为此,本文将介绍基于RHEL Linux发行版(例如Rocky Linux、AlmaLinux和Fedora )上安装和配置Memcached,从而保护服务器的安全。
在Linux中安装Memcached
首先更新本地软件包索引,然后以root管理用户身份使用以下yum命令从官方存储库安装Memcached :
yum update yum install memcached
接下来将安装libmemcached,它可以提供一些工具来管理Memcached服务器的客户端库:
yum install libmemcached
Memcached现在应该作为服务已经安装在系统上,同时安装了需要测试其连接性的工具。现在可以进一步保护其配置设置。
Memcached安全保护设置
为了确保已安装的Memcached服务正在监听127.0.0.1
本地接口,需要将改变/etc/sysconfig/memcached
配置文件中的OPTIONS
变量。
vi /etc/sysconfig/memcached
搜索OPTIONS
变量,并将-l 127.0.0.1,::1
添加到OPTIONS
变量,这些设置将保护服务器免受拒绝服务攻击。
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,::1"
以下是每个参数的详细解释:
- PORT:Memcached运行时使用的端口;
- USER:Memcached服务的启动守护进程;
- MAXCONN:用于将最大同时连接数设置为1024,而对于繁忙的Web服务器,可以根据需要将其增加到任意数字;
- CACHESIZE:将缓存大小内存设置为2048,对于繁忙的服务器,最多可以增加到4GB;
- OPTIONS:设置服务器的IP地址,以便Apache或Nginx Web 服务器可以连接到它。
重新启动并启用Memcached服务以应用你的配置更改:
systemctl restart memcached systemctl enable memcached
启动后,可以使用以下netstat 命令确认Memcached服务已绑定到本地接口并仅监听TCP连接:
netstat -plunt
此外,你还可以使用memcached-tool检查服务器的状态,命令如下:
memcached-tool 127.0.0.1 stats
现在,请确保通过打开防火墙上的11211
端口来允许访问Memcached服务器,如下所示:
firewall-cmd --permanent --zone=public --add-port=11211/tcp
测试Memcached安装
要验证Memcached是否正常工作,可以使用telnet命令连接到它:
telnet localhost 11211
如果连接成功,将会看到类似如下的提示:
安装Memcached PHP扩展
要在Linux系统上安装Memcached PHP扩展并将其与Perl、Python、Apache和Nginx集成,需要对每个组件进行逐个安装:
对于PHP组件:
yum install php-memcached
安装后可能需要重新启动Apache、Nginx或PHP-FPM:
systemctl restart httpd systemctl restart nginx systemctl restart php-fpm
对于Perl组件:
yum install perl-Cache-Memcached
对于Python组件:
yum install python3-memcached
安装之后,配置你的PHP、Perl或Python应用程序以利用Memcached进行缓存,这涉及到修改应用程序代码以连接到Memcached服务器并存储/检索缓存数据。
小结
在上述教程中,小编介绍了在本地网络接口安装和保护Memcached服务器的简单方法,旨在通过高效的缓存减少数据库负载来优化动态Web应用程序的性能。如果你也想进行这方面的设置,可以参考上述过程操作。