Neler Yeni

Apache için Varnish Cache'i CentOS 7'ye yükleyin

Status
Bu konu kilitlenmiştir.

z.furkandenizhan

80+ Bronze
Katılım
24 Ekim 2020
Mesajlar
589

Giriş​

Redis, açık kaynaklı bir bellek içi veri yapısı deposudur. Basit anahtar / değer çiftlerini depolamak için Memcached alternatifi olarak, bir NoSQL veritabanı veya hatta Pub-Sub kalıbı ile bir mesaj aracısı olarak kullanabilirsiniz. Bu kılavuz, CentOS 8'de Redis'i nasıl kuracağınızı, yapılandıracağınızı, ince ayar yapacağınızı ve güvenli hale getireceğinizi gösterecektir.

Önkoşullar​

1. Redis'i yükleyin​

Remi'nin RPM deposu, CentOS için uzun süreli ve topluluk tarafından güvenilen bir depodur. Redis paketi genellikle CentOS'un Redis paketinden daha yenidir.

  1. Depoyu etkinleştirin:
    $ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

  2. Remi deposundaki tüm mevcut Redis paketlerini listeleyin.
    $ dnf module list | grep redis

    Sonuç şöyle görünmeli:
    redis 5 [d] common [d] Redis persistent key-value database
    redis remi-5.0 common [d] Redis persistent key-value database
    redis remi-6.0 common [d] Redis persistent key-value database

    Yukarıdaki ikinci sütundaki değerler, Redis'in ana sürümlerine karşılık gelir.
  3. En son ana sürümün 6.0 olduğunu varsayarsak, şu sürümü yükleyin:
    $ sudo dnf module install redis:remi-6.0 -y

  4. Redis hizmetinin önyükleme zamanında başlamasını etkinleştirin.
    $ sudo systemctl enable redis.service

  5. Redis'i başlatın.
    $ sudo systemctl start redis.service

2. Redis'i yapılandırın​

  1. Redis yapılandırma dosyasını favori düzenleyicinizde açın:
    $ sudo nano /etc/redis.conf

  2. Uygulamanız için istenen hafıza kapasitesini ayarlayın.
    maxmemory 128mb

    Varsayılan olarak, maxmemory'ye ulaşıldığında, Redis yeni veri yazmayı durdurur. Redis'in eski verileri otomatik olarak kaldırarak yeni veriler yazmasını istiyorsanız, Redis'e bunları nasıl kaldıracağını söylemeniz gerekir. AllKeys-LRU tahliye politikası çoğu kullanıcı için iyi bir seçimdir. Aşağıdaki satırı ekleyin:
    maxmemory-policy allkeys-lru

    Tahliye yöntemleri hakkında daha fazla bilgiyi buradan edinebilirsiniz .
  3. Diske kaydetme politikasını ayarlayın.
    Varsayılan olarak Redis, bellek içi verilerini belirli bir süre sonra veya DB'ye karşı belirli sayıda yazma işlemi sonrasında diske kaydeder. Varsayılan ayarlar şunlardır:
    save 900 1
    save 300 10
    save 60 10000

    Bu, tasarrufun gerçekleşeceği anlamına gelir:
  • 900 saniye (15 dakika) sonra en az 1 anahtar değiştirilirse
  • 300 saniye (5 dakika) sonra en az 10 tuş değiştirilirse
  • 60 saniye sonra en az 10000 anahtar değiştirilirse
    Yukarıdaki varsayılan ayarlarla Redis, kaydedilen verileri her yeniden başlatıldığında belleğe yükleyecektir. Böylece önceki bellek içi verileriniz geri yüklenecektir. Bu özelliğe ihtiyacınız yoksa, bu satırları yorumlayarak tamamen devre dışı bırakabilirsiniz:
    # save 900 1
    # save 300 10
    # save 60 10000

    Bu özelliği korumaya karar verirseniz, Redis'in belleğinin yukarıda belirtilen maksimum belleğin iki katı olmasını sağlamak için sunucuyu daha büyük bir plana yükseltmeniz veya uygun bir Linux takas dosyası eklemeniz gerekir . Aksi takdirde, en kötü senaryoda, maxmemory değerine ulaşıldığında, kaydetme işlemi sunucunuzun belleğinin bitmesine neden olabilir.
  1. Yapılandırma dosyasını kaydedip kapatın, ardından değişiklikleri uygulamak için Redis'i yeniden başlatın.
    $ sudo systemctl restart redis.service

3. Sisteme İnce Ayar Yapın​

  1. Redis günlük dosyasını kontrol edin:
    $ sudo tail /var/log/redis/redis.log

    Bunun gibi bazı bilgiler göreceksiniz:
    5228:M 15 Aug 2020 04:14:29.133 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    5228:M 15 Aug 2020 04:14:29.133 # Server initialized
    5228:M 15 Aug 2020 04:14:29.133 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    5228:M 15 Aug 2020 04:14:29.133 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

  2. İlk uyarıyı düzeltmek için aşağıdaki komutu girin.
    $ echo 'net.core.somaxconn = 512' | sudo tee -a /etc/sysctl.conf > /dev/null

  3. İkinci uyarıyı düzeltmek için aşağıdaki komutu girin.
    $ echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf > /dev/null

  4. Sysctl değerlerini yeniden yükleyin.
    $ sudo sysctl -p

  5. Son uyarıyı düzeltmek için, Redis hizmetini başlatmadan önce önyükleme sırasında şeffaf kucaklanma sayfalarını devre dışı bırakmanız gerekir.
    Yeni bir komut dosyası oluşturun:
    $ sudo nano /usr/bin/disable-transparent-hugepage

    Aşağıdaki metni dosyaya yapıştırın:
    #!/bin/bash
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    exit 0

    Dosyayı kaydedip kapatın, ardından çalıştırılabilir ve kök hesaba ait hale getirin :
    $ sudo chown root:root /usr/bin/disable-transparent-hugepage
    $ sudo chmod 770 /usr/bin/disable-transparent-hugepage

    Ardından, komut dosyasını önyükleme sırasında çağıracak systemd hizmeti için yapılandırma dosyasını oluşturun:
    $ sudo nano /etc/systemd/system/disable-transparent-hugepage.service

    Aşağıdaki metni dosyaya yapıştırın:
    [Unit]
    Description=Disable Transparent Huge Pages (THP) for Redis.
    Before=redis.service

    [Service]
    Type=exec
    ExecStart=/usr/bin/disable-transparent-hugepage

    [Install]
    WantedBy=multi-user.target

    Dosyayı kaydedip kapatın, ardından hizmeti etkinleştirin:
    $ sudo systemctl enable disable-transparent-hugepage.service

4. Kurulumu Doğrulayın​

  1. Redis sunucusunu yeniden başlatın:
    $ sudo reboot

  2. Sunucu yeniden başlatıldıktan sonra herhangi bir uyarı olmadığından emin olmak için Redis günlük dosyasını kontrol edin:
    $ sudo tail /var/log/redis/redis.log

  3. Kullanım Redis-cli varsayılan loopback IP üzerinden REDIS bağlanmak için programı 127.0.0.1 ve port 6379 .
    $ redis-cli -h 127.0.0.1 -p 6379

    Bağlantı başarılı olursa, Redis komut istemini göreceksiniz:
    127.0.0.1:6379>

  4. Çalıştığından emin olmak için bazı Redis komutları girin:
    set testkey testvalue
    get testkey
    exit

    Aşağıdaki sonucu görürseniz, Redis düzgün çalışıyor demektir.
    127.0.0.1:6379> set testkey testvalue
    OK
    127.0.0.1:6379> get testkey
    "testvalue"
    127.0.0.1:6379> exit

5. (İsteğe Bağlı) Redis'i Özel Ağ Erişimi için Yapılandırma​

Uygulamanız için birden çok sunucuyla bir üretim ortamı kurarsanız, uygulama sunucularının Redis sunucusuna erişmesi gerekir. Güvenlik için özel bir ağ kullanılması önerilir.

Özel ağı yapılandırın​

  1. Bu Redis sunucusu ve Redis ile iletişim kurması gereken uygulama sunucuları için özel bir ağı etkinleştirmek ve yapılandırmak için bu kılavuzu izleyin .
  2. Özel ağdan gelen bağlantılara izin vermek için güvenlik duvarı hizmetini güncelleyin :
    $ sudo firewall-cmd --permanent --zone=trusted --change-interface=ens7

  3. Özel arabirim açılıncaya ve IP adresi atanana kadar Redis'in başlatılmasını geciktirmek için bir systemd hizmeti oluşturun.
    $ sudo nano /etc/systemd/system/redis.service.d/wait-for-ips.conf

    Aşağıdaki metni dosyaya yapıştırın, ardından kaydedin ve kapatın:
    [Unit]
    After=network-online.target
    Wants=network-online.target

  4. Redis yapılandırma dosyasını düzenleyin.
    $ sudo nano /etc/redis.conf

  5. Redis'in bağlanması gereken özel IP adresini ekleyin. Örneğin, Redis'in hem dahili geridöngü (127.0.0.1) hem de özel bir IP adresine (192.168.0.100) bağlanması gerekiyorsa:
    bind 127.0.0.1 192.168.0.100

  6. Yapılandırma dosyasını kaydedin ve kapatın.
  7. Değişiklikleri uygulamak için Redis'i yeniden başlatın.
    $ sudo systemctl restart redis.service

Özel ağı test edin​

  1. SSH ile özel ağınızdaki uygulama sunucularınızdan birine bağlanın.
  2. Uygulama sunucusunun da CentOS 8 olduğunu varsayarsak, redis-cli yazılımını almak için geçici olarak Redis'i kurun.
    $ sudo dnf install redis

  3. Kullanım Redis-cli Redis sunucusuna bağlanmak için programı.
    $ redis-cli -h 192.168.0.100 -p 6379

    Bağlantı başarılı olursa, Redis komut istemini göreceksiniz:
    192.168.0.100:6379>

  4. Çalıştığından emin olmak için bazı Redis komutları girin:
    set testkey testvalue
    get testkey
    exit

  5. Aşağıdaki sonucu görürseniz, Redis düzgün çalışıyor demektir.
    127.0.0.1:6379> set testkey testvalue
    OK
    127.0.0.1:6379> get testkey
    "testvalue"
    127.0.0.1:6379> exit

  6. Redis paketini uygulama sunucusundan kaldırın .
    $ sudo dnf remove redis
 

z.furkandenizhan

80+ Bronze
Katılım
24 Ekim 2020
Mesajlar
589
  • Konu Sahibi Konu Sahibi
  • #3
Gene uğraşılmış. Eline sağlık. Reis sen neler ile igleniyorsun?
Firmalara ve bireysellere (bireysellere nadiren) sunucu ve ağ yönetimi, web ve grafik tasarım, siber güvenlik, search engine optimization, alanlarında hizmet veriyorum.
 

z.furkandenizhan

80+ Bronze
Katılım
24 Ekim 2020
Mesajlar
589
  • Konu Sahibi Konu Sahibi
  • #5
Ayıp olcak ama güzel bir bütçe geliyor mu? Tam fiyat sormayayım.
Kurumsallardan eh işte bir şeyler geliyor, ama bireyseller çok problemli. Bireysele girmemek en mantıklısı
 
Status
Bu konu kilitlenmiştir.
Yeni mesajlar Yeni Konu Aç      

SON KONULAR

Forum istatistikleri

Konular
906,614
Mesajlar
8,301,496
Üyeler
140,673
Son üye
lord1850
Top Bottom