Memcache temel yapılandırması


14

Memcached pecl uzantısı ile bir Drupal sitesi için memcache yükledim. Her şey yolunda gidiyor ama yapılandırma ayarlarıyla hala mücadele ediyorum.

Örneğin, drupal.org'daki tavsiyeleri takip ederek

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}"

Sorun şu ki, sunucumda bu dosya yok, her durumda bu konumda değil. Diğer bazı makaleler /etc/memcached.conf'tan bahsetmiştir ancak bu dosyayı da bulamıyorum.

/ Etc / sysconfig / memcached veya /etc/memcached.conf dosyasının sunucumdan çıkmadığı düşünüldüğünde, bunları güvenle oluşturabilir miyim? Bu dosyaların başka bir yere yerleştirilmesi mümkün müdür, bu durumda nereye bakmalıyım veya bu bilgiyi bulmanın herhangi bir yolu var mı?

Son olarak, herhangi bir kaynak, öğretici veya dokümantasyon bağlantısı çok takdir edilecektir. Memcache'nin sitesi Wiki'ye göz attım ve yeni başlayanlar için sadece birkaç alakalı makale bulabildim.


1
Drupal talimatları yanlış. Bu -lseçenek, hangi ana makinelerin sunulacağını değil , hangi arayüzlerin memcached dinleyeceğini düzenler .
Wayne Conrad

Yanıtlar:


17

Bize OS / dağıtımınızdan bahsetmediniz. Ayrıca, memcached'i nasıl yüklediğinizi bize söylemediniz.

Genellikle, debian tabanlı sistemler altında veya redhat, fedora veya centos altında /etc/memcached yüklediğinizde örnek bir yapılandırma dosyası alırsınız.apt-getrpmyum

Kaynaktan yüklediyseniz, altında örnek bir dosya alamayabilirsiniz /etc/(Kaynaktan memcached'i kendim kurmadım). Ancak, paketlenmemiş kaynak klasöründe örnek bir yapılandırma dosyası arayabilirsiniz.

Her neyse, locate memcached.confsisteminizde bir tane aramak için kullanabilirsiniz . sudo updatedbArama önbelleğini güncellemek için bundan önce yapmanız gerekir .

İşte benim sistemimden yapılandırma dosyası. Bunu kullanabilirsiniz:

# 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

Aynı seçenekleri komut satırından da iletebilirsiniz.


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Memcache'i yüklemek için o kadar çok adım attım ki memcache'i nasıl yapacağımı kesin olarak hatırlayamıyorum. Bu yapılandırma dosyaları eksik olduğu için kaynaktan derlenmiş olabilir. Kesinlikle pecl uzantılarının kaynaktan yüklendiğini biliyorum, çünkü pecl kullanmak işe yaramadı. Kaynak klasöre bakarak, örnek yapılandırma dosyasının ne olacağını söyleyemedim ...
PatrickS

@PatrickS: Cevabımı güncelledim.
Khaled

Memcache yapılandırmak için yukarıdaki komut satırı seçeneklerini kullanarak /etc/init.d/memcached oluşturdum
PatrickS

11

Varsayılan (CentOS) / etc / sysconfig / memcached:

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

İnit betiği (CentOS) /etc/init.d/memcached:

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

Yukarıda belirtilenler, eğer dosya varsa, onu 'kaynak' eder (içeriğini oku ve değerlendir).

Bildiğim kadarıyla memcached'in bir yapılandırma dosyası yok. Komut satırı parametrelerini kullanır , örneğin (bir RHEL / CentOS başlangıç ​​komut dosyasından):

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

(Yukarıda tanımlanan değişkenlerin burada kullanıldığını göreceksiniz).

Sonuç olarak, bu nedenle:

  • İnit betiğinizi kontrol edin - eğer yukarıdakine benzer bir bölüm içeriyorsa (if ifadesi), o zaman kesinlikle, eşleşen dosyayı oluşturun ve uygun değişkenleri içine yerleştirin.
  • Hiçbir yapılandırma dosyası yoktur - kullanılmayacağı için bir dosya oluşturmayın.

3

CentOS /etc/init.d/memcached'de bulamazsanız şunu deneyin:

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

ve değişim:

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

için:

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

/ Etc / sysconfig / memcached içine ekledikten sonra

MAXITEMSIZE="128m"

Memcached'ı yeniden başlat

service memcached restart

Parametrenin eklenip eklenmediğini kontrol etmek için şunu deneyin:

ps aux | grep memcached
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.