[server] Memcache 기본 구성

Drupal 사이트에 memcached pecl 확장명을 가진 memcache를 설치했습니다. 모두 제대로 작동하지만 여전히 구성 설정으로 어려움을 겪고 있습니다.

예를 들어 drupal.org에 대한 조언을 따르십시오.

You should probably lock down the memcache server so that it only listens for
connections from the hosts that need to be served, as the default is that
memcache listens to connections from all addresses.
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

문제는 서버 에이 파일이 없거나이 위치에 있지 않다는 것입니다. 다른 기사에서 /etc/memcached.conf에 대해 언급했지만이 파일을 찾을 수 없습니다.

/ etc / sysconfig / memcached 또는 /etc/memcached.conf가 서버에서 종료되지 않는다고 생각하면 안전하게 만들 수 있습니까? 이러한 파일을 다른 곳에 배치 할 수 있습니까?이 경우 해당 정보를 어디에서 보거나 찾아야합니까?

마지막으로, 모든 자료, 튜토리얼 또는 문서 링크는 대단히 감사하겠습니다. memcache의 사이트 Wiki를 탐색했으며 초보자를위한 몇 가지 관련 기사 만 찾을 수있었습니다.



답변

OS / 디스트로에 대해 알려주지 않았습니다. 또한 memcached 설치 방법을 알려주지 않았습니다.

일반적으로 debian 기반 시스템 또는 redhat, fedora 또는 centos 에서 /etc/memcached를 설치할 때 샘플 구성 파일이 제공 됩니다 .apt-getrpmyum

소스에서 설치 한 경우 샘플 파일을 얻지 못할 수 있습니다 /etc/(소스에서 memcached를 설치하지 않았습니다). 그러나 압축을 푼 소스 폴더에서 샘플 구성 파일을 찾을 수 있습니다.

어쨌든, 당신은 locate memcached.conf당신의 시스템에서 하나를 찾을 수 있습니다 . sudo updatedb검색 캐시를 업데이트하려면 그 전에 수행해야 합니다.

내 시스템의 구성 파일은 다음과 같습니다. 당신은 그것을 사용할 수 있습니다 :

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# 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

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

명령 행에서 동일한 옵션을 전달할 수도 있습니다.


답변

기본 (CentOS) / etc / sysconfig / memcached :

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

초기화 스크립트 (CentOS) /etc/init.d/memcached :

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

위의 내용은 파일이 존재하는 경우 ‘소스'(즉, 내용을 읽고 평가)에 해당합니다.

내가 아는 한 memcached에는 구성 파일이 없습니다. 예를 들어 RHEL / CentOS init 스크립트의 명령 행 매개 변수를 사용합니다 .

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

위에서 정의한 변수가 여기에 사용됩니다.

결론은 다음과 같습니다.

  • init 스크립트를 확인하십시오-위와 유사한 섹션 (if 문)이 ​​포함되어 있다면 반드시 일치하는 파일을 만들고 적절한 변수를 넣으십시오.
  • 구성 파일이 없습니다-사용되지 않으므로 구성 파일을 만들지 마십시오.

답변

CentOS /etc/init.d/memcached에서 찾을 수 없으면 다음을 시도하십시오.

nano /usr/lib/systemd/system/memcached.service

변경 :

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

에:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

/ etc / sysconfig / memcached에 추가 한 후

MAXITEMSIZE="128m"

memcached를 다시 시작하십시오.

service memcached restart

매개 변수가 추가되었는지 확인하려면 다음을 시도하십시오.

ps aux | grep memcached


답변