Ubuntu 24.04에서 Nextcloud용 Redis 캐싱을 구성하는 방법

Nextcloud의 최신 관리 설명서에는 Redis 캐싱 및 트랜잭션 파일 잠금을 위한 PhpRedis 확장 프로그램에 대한 내용이 여전히 나와 있습니다. 또한 Nextcloud 34.0.2에 추가된 확장 프로그램이 필요 없는 새로운 KeyValueCache 백엔드에 대한 내용도 포함되어 있습니다. 이 가이드에서는 Ubuntu 24.04에 PHP 8.3 Redis 확장 패키지가 포함되어 있으므로 기존의 PhpRedis 구성을 사용합니다. 사용 중인 Nextcloud 버전에서 최신 백엔드를 지원하는 경우 해당 백엔드를 사용할 수 있지만, 구성 키가 다르므로 두 예제를 혼용하지 마십시오.

결과적으로 Nextcloud 호스트에서만 사용 가능한 로컬 Redis 서비스, Redis 기반 분산 캐시 및 파일 잠금 기능, 그리고 더 빠른 로컬 캐시를 위한 APCu가 생성됩니다. 이는 일반적인 단일 서버 구성입니다. 웹 서버와 PHP 서버가 여러 호스트에 분산되어 있는 경우, 아래의 localhost 설정 대신 적절한 네트워크 제어를 사용하여 공유 Redis 엔드포인트를 사용하십시오.

Nextcloud 설치에서 Redis가 변경하는 사항은 무엇인가요?

Redis는 Nextcloud에 분산 캐시 항목 및 트랜잭션 파일 잠금을 위한 키-값 서비스를 제공합니다. 이러한 잠금은 여러 요청이 파일을 동시에 처리할 때 발생하는 충돌을 방지하는 데 도움이 됩니다. Redis는 Nextcloud의 데이터베이스, 파일 저장소, PHP OPcache 또는 백업 계획을 대체하는 것이 아닙니다. 단일 서버에서는 로컬 프로세스 내 캐싱에 APCu가 일반적으로 더 빠르며, Redis는 공유 캐시 및 잠금을 처리합니다. Nextcloud는 특히 여러 웹 서버를 사용하는 경우 Redis를 로컬 캐시로 사용하는 것을 권장하지 않는다고 경고합니다.

Nextcloud의 최신 설명서에서는 Redis를 지원되는 백엔드로 명시하고 있으며, 확장 기반 방식에는 PhpRedis 2.2.6 이상 버전을 권장합니다. Ubuntu 24.04의 패키지 아카이브에는 php8.3-redis와 가 포함되어 있습니다 redis-server. Ubuntu 업데이트에 따라 패키지 버전이 변경될 수 있으므로, 이전 가이드에서 복사한 버전을 고정하는 대신 구성된 Ubuntu 저장소에서 설치하십시오. 2026년 10월 6일 확인된 참고 자료: Nextcloud 메모리 캐싱 문서 , Ubuntu 24.04 PhpRedis 패키지 목록 , Ubuntu 24.04 Redis 서버 패키지 목록 .

시작하기 전에

  • Nextcloud 설치 디렉터리와 웹사이트에서 사용하는 PHP 런타임을 확인하십시오. 아래 명령은 PHP 8.3, Apache 또는 PHP-FPM, 그리고 웹 서비스 계정이 포함된 표준 Ubuntu 패키지 설치를 가정합니다 www-data.
  • 백업을 해두 config/config.php고 복원 방법을 기록해 두세요. 정확한 경로는 경우에 따라 다릅니다. 예를 들어, 패키지 설치의 경우 특정 경로를 사용할 수 있지만 /var/www/nextcloud/config/config.php, 수동 설치의 경우 다른 위치에 있을 수 있습니다.
  • 서버에서 활발한 파일 업로드를 처리하는 경우 유지 관리 시간을 활용하십시오. Apache 또는 PHP-FPM을 재시작하면 웹 요청이 일시적으로 중단될 수 있습니다.

1. Redis, PhpRedis 및 APCu를 설치합니다.

패키지 메타데이터를 업데이트하고 데몬 및 PHP 확장 프로그램을 설치합니다.

sudo apt update
sudo apt install redis-server php-redis php-apcu

Ubuntu php-redis패키지 관리자는 설치된 PHP 버전에 맞는 확장 프로그램을 선택합니다. 여러 PHP 버전을 관리하거나 타사 PHP 저장소를 사용하는 경우, Nextcloud에서 사용하는 정확한 PHP 버전에 맞는 확장 프로그램이 설치되어 있는지 확인하십시오. 명령줄 PHP 런타임에서만 활성화된 모듈은 Apache 또는 PHP-FPM에서 로드될 수 있다는 보장을 제공하지 않습니다.

Redis를 부팅 시 자동 실행되도록 설정하고 지금 바로 시작한 다음 서비스 상태를 확인하세요.

sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping

정상적인 로컬 Redis 응답은 마지막 명령에 대한 응답입니다 PONG. 서비스가 비활성화된 경우 sudo journalctl -u redis-server -n 50 --no-pagerNextcloud 구성을 변경하기 전에 확인하십시오.

2. Redis 리스너를 로컬에 유지하세요

단일 호스트 설치의 경우 Redis는 공용 인터페이스에서 수신 대기할 필요가 없습니다. Ubuntu의 기본 구성은 일반적으로 로컬 액세스 및 보호 모드에 맞춰 설계되었으므로 /etc/redis/redis.conf변경하기 전에 설정을 확인하십시오.

sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf

127.0.0.1Redis를 루프백 인터페이스(일반적으로 `/etc/redis.h` 및 `/etc/redis.h`) 에 바인딩하고 보호 모드를 활성화된 상태로 유지하십시오 . 이 로컬 설정에서는 `/etc/redis.h` 포트를 인터넷에 ::1노출하거나 `/etc/redis.h`에 바인딩하지 마십시오 . Redis 구성을 변경한 후에는 서비스를 다시 시작하고 위의 단계를 반복하십시오 .63790.0.0.0redis-cli ping

이 가이드에서는 소켓 권한 변경을 최소화하기 위해 로컬 호스트에서 TCP를 사용합니다. 유닉스 소켓도 지원되는 로컬 옵션이며 연결 오버헤드를 줄일 수 있지만, Redis 소켓 경로, 그룹 소유권, 권한 및 Nextcloud 구성이 모두 일치해야 합니다. 유닉스 소켓을 사용하려면 Nextcloud 설명서의 소켓 예제를 참조하십시오.

3. PHP가 두 확장 프로그램을 모두 로드할 수 있는지 확인합니다.

명령줄 PHP 모듈을 확인하세요:

php -m | grep -Ei '^(apcu|redis)$'

두 이름 모두 표시되어야 합니다. 하나라도 누락된 경우, 활성화된 모듈 파일을 확인 php --ini하고 PHP 버전에 맞는 패키지를 설치하십시오. 웹사이트에서 사용하는 PHP 핸들러를 재시작하여 워커가 새 모듈을 로드하도록 하십시오. mod_php를 사용하는 Apache의 경우, `php -p`를 실행하십시오 sudo systemctl restart apache2. PHP 8.3을 사용하는 PHP-FPM 설치의 경우, `php -p`를 실행하십시오 sudo systemctl restart php8.3-fpm. 배포 환경에 따라 웹 서버를 재시작하거나 다시 로드하십시오.

CLI 검사는 유용한 초기 신호일 뿐, 웹 런타임이 제대로 작동하는지 완벽하게 증명하는 것은 아닙니다. 이후에는 Nextcloud 관리 설정에서 서버 정보 또는 PHP 정보 보기를 사용하여 웹 프로세스가 캐시 모듈을 인식하는지 확인하십시오.

4. Nextcloud에 캐시 설정을 추가합니다.

기존 파일을 config/config.php편집기로 엽니다. 먼저 파일을 백업하고, 파일을 닫기 전에 이 항목들을 기존 PHP 배열에 병합합니다 );. 파일 전체를 덮어쓰거나 이미 존재하는 키를 두 번째로 추가하지 마십시오.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

명시적인 루프백 주소는 로컬 Redis 서비스와 일치합니다. Unix 소켓을 사용하는 경우 소켓 경로를 Redis 호스트로 사용하고 데몬 및 권한을 일치하도록 구성하십시오. Redis에 인증이 필요한 경우 올바른 Redis ACL 사용자 이름과 암호를 배열에 추가하고 redisRedis를 accordingly 구성하십시오. 공유 예제나 공개 지원 게시물에 실제 암호를 붙여넣지 마십시오.

데이터베이스 자격 증명, 신뢰할 수 있는 도메인, 데이터 디렉터리와 같은 기존 설정은 instanceid변경하지 마십시오. PHP 배열 구문은 중요합니다. 항목 사이에 쉼표를 유지하고 각 설정이 한 번만 나타나도록 하십시오.

5. 캐시 및 파일 잠금 유효성 검사

웹 서비스 사용자 계정으로 설치 디렉터리에서 Nextcloud의 명령줄 상태 확인을 실행하십시오. 설치 위치가 다른 경우 예시 경로를 변경하십시오.

cd /var/www/nextcloud
sudo -u www-data php occ status

웹 인터페이스의 관리 설정 에서 설정 경고를 확인하고, Redis 및 APCu 모듈이 웹 PHP 런타임에서 인식되는지 확인하십시오. 그런 다음 중요하지 않은 작은 파일을 사용하여 일반적인 파일 작업을 테스트하십시오. 파일을 업로드하고, 이름을 변경하고, 다운로드하고, 삭제해 보십시오. 로컬 캐시가 올바르게 구성되면 관리자 페이지에 메모리 캐시가 없다는 메시지가 더 이상 표시되지 않아야 합니다.

테스트 성공은 PONGRedis가 로컬 CLI 클라이언트에 응답한다는 것만 입증합니다. Nextcloud 관리자 확인 및 일반적인 파일 작업은 PHP 확장 프로그램, 웹 서버 권한, Redis 연결 설정 및 애플리케이션 구성을 종합적으로 검증하는 데 도움이 됩니다. 한 번의 테스트에서 페이지 로드 속도가 빨라졌다고 해서 성능 향상을 입증하는 것으로 간주해서는 안 됩니다. 작업 부하, 스토리지, 데이터베이스 및 PHP 워커 용량 모두 응답 시간에 영향을 미칩니다.

일반적인 문제 해결

관리자 페이지에는 여전히 메모리 캐시가 없다고 표시됩니다.

중복되거나 오타가 있는 캐시 키가 있는지 확인하고, 해당 memcache.local키가 APCu를 가리키는지 확인한 후, 올바른 Apache 또는 PHP-FPM 서비스를 다시 시작하십시오. CLI 전용 PHP 설치는 웹사이트에서 사용하는 PHP 런타임과 다를 수 있습니다.

Redis는 실행 중이지만 Nextcloud에서 연결 오류가 발생합니다.

host와 port를 config.php리스너와 비교하십시오 /etc/redis/redis.conf. 를 사용하여 로컬 액세스를 확인 redis-cli -h 127.0.0.1 -p 6379 ping하고 Redis 및 웹 서버 로그를 검토하십시오. 소켓 또는 암호를 사용하는 경우 양쪽에서 경로 또는 자격 증명이 일치하는지 확인하십시오.

변경 후 파일 작업이 실패합니다.

인스턴스를 사용할 수 없게 되면 백업된 데이터를 임시로 복원한 config.php다음 PHP 및 웹 서버 로그를 검사하십시오. 배열의 구두점을 확인하고, Redis 서비스가 활성화되어 있는지 확인하고, 방화벽이나 사용자 지정 Redis ACL이 웹 프로세스를 차단하지 않는지 확인하십시오. 문제 해결의 첫 단계로 Redis 데이터를 삭제하지 마십시오. 캐시 또는 잠금 항목을 제거하기 전에 연결 및 구성을 조사하십시오.

이 구성에서 다루지 않는 내용

이 구성은 단일 서버 구성이며, 고가용성 Redis 설계가 아닙니다. Redis 복제, Sentinel, TLS, 원격 캐시 호스트, 세션 저장소 또는 클러스터형 Nextcloud 배포를 구성하지 않습니다. 다중 서버 Nextcloud 노드는 동일한 분산 캐시 및 잠금 백엔드를 공유해야 합니다. 각 노드의 localhost는 별도의 Redis 인스턴스를 생성하여 이러한 요구 사항을 충족하지 못합니다. 원격 또는 클러스터 토폴로지의 경우, 해당 Nextcloud 구성 섹션을 참조하여 해당 환경에 맞는 Redis 통신 보안을 설정하십시오.

구성이 안정화되면 Redis 메모리 사용량과 Nextcloud 관리 개요를 모니터링하십시오. 캐시 및 잠금 활동에 충분한 메모리를 할당하고, 잠금 데이터를 폐기할 수 있는 검토되지 않은 제거 정책을 피하며, 정기적인 데이터베이스 및 파일 백업을 유지하십시오. Redis 캐싱은 캐시 및 잠금 오버헤드를 줄일 수 있지만, 용량 계획을 대체하는 것이 아니라 안정적인 Nextcloud 설치를 위한 하나의 요소일 뿐입니다.

댓글 남기기

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

빠른 LAN 검색, 플랫폼 간 스캔 및 IP 주소 관리를 위한 10가지 핑 스윕 도구를 비교해 보세요. 스윕을 통해 무엇을 알 수 있고 무엇을 알 수 없는지 알아보세요.

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

SNMP 적용 범위, 매핑, 알림, 배포 모델 및 비용 대비 효과를 포함하여 성능 모니터링을 위한 6가지 네트워크 관리 도구를 비교합니다.

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iPhone, Android용 Wi-Fi 분석 앱들을 비교해 보세요. 채널 혼잡도, 신호 범위, 히트맵, 네트워크 문제 해결 도구 등을 포함합니다.

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

종합적인 네트워크 관리 도구부터 특정 지연 시간 측정에 특화된 도구까지, 7가지 무료 오픈 소스 핑 모니터링 도구를 비교하고 가용성, 패킷 손실률, 기록 관리에 적합한 도구를 선택하세요.

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서 QoS가 무엇을 의미하는지, DSCP 마킹과 트래픽 큐가 음성, 비디오 및 비즈니스 애플리케이션의 우선순위를 어떻게 지정하는지, 그리고 QoS로 해결할 수 없는 문제는 무엇인지 알아보세요.

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap의 --traceroute 옵션을 사용하여 홉을 인증된 호스트로 매핑하고, 홉 및 RTT 출력을 이해하고, 과도한 스캔 없이 누락된 응답 문제를 해결할 수 있습니다.

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

Windows 및 Linux용 안정적인 SFTP 서버 소프트웨어(OpenSSH, Bitvise, SolarWinds, SFTPGo 등)를 비교해 보세요. 보안 및 파일 전송 요구 사항에 맞는 최적의 솔루션을 찾아보세요.

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

서브넷 검색, DNS 및 DHCP 조정, 네트워크 인벤토리, 오픈 소스 IPAM을 위한 7가지 IP 주소 관리 도구를 비교합니다.

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

SolarWinds NPM, PRTG 및 OpManager를 비교하여 명확한 장치 범위, 유용한 성능 지표, 실행 가능한 알림을 통해 실용적인 네트워크 모니터링 시스템을 구축하십시오.

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

빠른 장치 검색, 플랫폼 간 IP 스캔 및 엔터프라이즈 IPAM을 위한 네트워크 스캐너 도구를 비교하고, 각 옵션을 네트워크에 맞게 선택하는 방법에 대한 지침을 제공합니다.