Базовая конфигурация Memcache

14

Я установил memcache для сайта Drupal с расширением memcached pecl. Все работает нормально, но я все еще борюсь с настройками конфигурации.

Например, следуя совету на 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 не завершаются на моем сервере, могу ли я их безопасно создать? Возможно ли, чтобы эти файлы находились где-то еще, и в таком случае, где мне искать или есть ли способ найти эту информацию?

Наконец, любые ресурсы, учебные пособия или ссылки на документы будут с благодарностью. Я просмотрел сайт Wiki memcache и смог найти только пару соответствующих статей для начинающих.

Патрикс
источник
1
Инструкции друпала неверны. В -lопции регулирует к которому интерфейсы Memcached будут слушать, не которые будут обслуживаться хозяева.
Уэйн Конрад

Ответы:

17

Вы не сказали нам о своей ОС / дистрибутиве. Кроме того, вы не сказали нам, как вы установили memcached.

Как правило, вы получаете пример файла конфигурации, /etc/когда устанавливаете memcached, используя apt-getсистемы на основе debian и / rpmили yumredhat, fedora или centos.

Если вы установили его из исходного кода, вы можете не получить образец файла в разделе /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

Вы также можете передать те же параметры из командной строки.

Халед
источник
Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Я сделал так много шагов, чтобы установить memcache, что не могу точно вспомнить, как я это сделал. Возможно, он был скомпилирован из исходного кода, поскольку эти файлы конфигурации отсутствуют. Я точно знаю, что расширения pecl были установлены из исходного кода, просто потому, что использование pecl не работало. Глядя на исходную папку, я не мог сказать, что будет образец файла конфигурации ...
PatrickS
@PatrickS: я обновил свой ответ.
Халед
Я закончил тем, что создал /etc/init.d/memcached, используя вышеупомянутые параметры командной строки для настройки memcache
PatrickS
11

По умолчанию (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):

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

(Вы заметите, что переменные, определенные выше, используются здесь).

Таким образом, нижняя строка:

  • Проверьте ваш скрипт инициализации - если он содержит раздел, аналогичный описанному выше (оператор if), то, конечно, создайте соответствующий файл и поместите в него соответствующие переменные.
  • Конфигурационного файла нет - не создавайте его, так как он не будет использоваться.
cyberx86
источник
3

Если вы не можете найти в 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
onalbi
источник