Podstawowa konfiguracja Memcache


14

Zainstalowałem memcache dla strony Drupal z rozszerzeniem memcached pecl. Wszystko działa dobrze, ale wciąż mam problemy z ustawieniami konfiguracji.

Na przykład, zgodnie z poradami na 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}"

Problem polega na tym, że nie mam tego pliku na moim serwerze, w każdym razie nie w tej lokalizacji. Niektóre inne artykuły wspominały /etc/memcached.conf, ale nie mogę również znaleźć tego pliku.

Biorąc pod uwagę, że pliki / etc / sysconfig / memcached lub /etc/memcached.conf nie zamykają się na moim serwerze, czy mogę je bezpiecznie utworzyć? Czy możliwe jest umieszczenie tych plików w innym miejscu, w którym to przypadku powinienem szukać lub czy jest jakiś sposób na znalezienie tych informacji?

Wreszcie, wszelkie zasoby, samouczki lub linki do dokumentacji będą bardzo mile widziane. Przeglądałem witrynę Wiki Memcache i mogłem znaleźć tylko kilka odpowiednich artykułów dla początkujących.


1
Instrukcje drupala są niepoprawne. W -lReguluje opcja do którego interfejsy Memcached będą słuchać, nie które serwowane będą gospodarzami.
Wayne Conrad

Odpowiedzi:


17

Nie powiedziałeś nam o swoim systemie operacyjnym / dystrybucji. Ponadto nie powiedziałeś nam, jak zainstalowałeś memcached.

Zwykle otrzymasz przykładowy plik konfiguracyjny /etc/podczas instalacji memcached przy użyciu apt-getsystemów opartych na Debianie i / rpmlub yumpod redhat, fedora lub centos.

Jeśli zainstalowałeś go ze źródła, możesz nie otrzymać przykładowego pliku pod /etc/(sam nie zainstalowałem memcached ze źródła). Możesz jednak poszukać przykładowego pliku konfiguracyjnego w rozpakowanym folderze źródłowym.

W każdym razie możesz użyć, locate memcached.confaby poszukać takiego w swoim systemie. Musisz to zrobić sudo updatedbwcześniej, aby zaktualizować pamięć podręczną wyszukiwania.

Oto plik konfiguracyjny z mojego systemu. Możesz tego użyć:

# 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

Możesz również przekazać te same opcje z wiersza poleceń.


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Poszedłem przez tak wiele kroków, aby zainstalować memcache, którego nie pamiętam z całą pewnością, jak to zrobiłem. Być może został skompilowany ze źródła, ponieważ brakuje tych plików konfiguracyjnych. Wiem na pewno, że rozszerzenia pecl zostały zainstalowane ze źródła, po prostu dlatego, że użycie pecl nie działało. Patrząc na folder źródłowy, nie wiedziałem, jaki będzie przykładowy plik konfiguracyjny ...
PatrickS

@PatrickS: Zaktualizowałem swoją odpowiedź.
Khaled

Skończyło się tworzenie /etc/init.d/memcached przy użyciu powyższych opcji wiersza poleceń do skonfigurowania memcache
PatrickS

11

Domyślny (CentOS) / etc / sysconfig / memcached:

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

Skrypt inicjujący (CentOS) /etc/init.d/memcached:

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

Powyższe stanowi, jeśli plik istnieje, „źródło” (tzn. Odczytanie i ocenę jego zawartości).

O ile mi wiadomo, memcached nie ma pliku konfiguracyjnego. Wykorzystuje na przykład parametry wiersza poleceń (ze skryptu inicjującego RHEL / CentOS):

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

(Zauważysz, że zmienne zdefiniowane powyżej są tutaj użyte).

Najważniejsze jest zatem:

  • Sprawdź swój skrypt startowy - jeśli zawiera sekcję podobną do powyższej (instrukcja if), z pewnością utwórz pasujący plik i umieść w nim odpowiednie zmienne.
  • Nie ma pliku konfiguracyjnego - nie twórz go, ponieważ nie będzie używany.

3

Jeśli nie możesz znaleźć na CentOS /etc/init.d/memcached, spróbuj tego:

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

i zmień:

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

do:

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

Po dodaniu w / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Uruchom ponownie memcached

service memcached restart

Aby sprawdzić, czy parametr został dodany, spróbuj:

ps aux | grep memcached
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.