Site icon blog.eomeo.net

워드프레스 설치 및 빠른 성능을 위한  Redis 설정 방법

필자는 자체 홈 서버를 활용하여 워드프레스 사이트를 운영 중이다.
오늘은 워드프레스 설치 및 빠른 성능을 위한  Redis 설정 방법 을 알아보려 한다.
Redis 활용을 위해 Redis Object Cache 플러그인 활용하는 방법을 알아보고자 한다.

워드프레스의 성능 저하는 애드고시 인 AdSense 승인, 트래픽 유입 및 검색엔진 상위 링크에 영향을 준다고 알려져 있다.
성능 개선을 여러가지 factor가 있지만 결국 I/O 개선에 영향을 주는 Cache, 특히 Object Cache, Redis Object Cache 플러그인이
쉽고 지속가능한 개선을 줄 수 있는 factor라 생각한다.

워드프레스 설치 및 빠른 성능을 위한  Redis 설정 방법
즉, Redis Object Cache를 활용하는 구성방법은 다음과 같다.

필자 서버 환경은 집 돌아다니는 PC 기반으로 홈서버로 구성하여 운영하고 있다.
PC에 linux를 설치하고 docker 기반에  container로 구성 하여 운영 중이다.

Docker 서버 구성

먼저 Redis 서비스를 추가 한 docker-compose.yml 공유 한다.

version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
      WORDPRESS_REDIS_HOST: redis
    volumes:
      - wordpress_data:/var/www/html
      - backup_data:/data
    depends_on:
      - db
      - redis

  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_ROOT_PASSWORD: somerootpassword
    volumes:
      - db_data:/var/lib/mysql
      - backup_data:/data

  redis:
    image: redis:latest
    ports:
      - "16379:6379"
    command: ["redis-server", "--requirepass", "somepasswd"]
    volumes:
      - redis_data:/data
      - backup_data:/backup

volumes:
  wordpress_data:
  db_data:
  redis_data:
  backup_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: ./backup

위는  docker-compose.yml은 docker 기반에서 다양한 서버 구성을 스크립트 형태로 간단하게 구성할 수 있는 기법이다.
위 내용은 wordpress, mysql(rdb), redis(in-memeory db)로 구성 되어 있다.
위 스크립트를 실행하면 다음과 같이 출력 된다.

 docker ps 해 보면 3개의 container 가 실행 되고 있음을 확인 할 수 있다.

위 화면은 간단하게 redis 및 워드프레스 서비스가 잘 올라가 있음을 확인 할 수 있다.



플러그인 설치

플러그인 설치를 위해 왼쪽 메뉴에서 ‘플러그인’을  클릭하여 플러그인 메뉴로 진입한다.


왼쪽 상단  ‘새 플러그인 추가’를 클릭하면 다음과 같은 화면이 나온다.

위 화면에서 ‘redis object cache’를 키인 하여 검색한다.
Redis Objec Cache  플러그인이 검색 되면 ‘지금 설치’ 클릭 후 , ‘활성화’를 클릭하여 플러그인을 활성화 시킨다.

플러그인 활성화 이후, 설정 메뉴를 보면 ‘Redis’라는 메뉴가 새로 생성 되었다.
여기를 클릭하면 아직 준비 안되어 있는 상태를 확인 할 수 있다.


여기서 ‘Enable Object Cache’를 클릭하면
다음과 같은 에러 화면이 등장한다.



위 화면에서 당황하지 마시고 command 창을 열어서 파일 하나를 편집하면 재대로 동작 할 수 있다.

워드프레스 설정


위와 같이 wordpress 컨테이너에 접속하여 /var/www/html/wp-content/ 디렉토리에
‘object-cache.php’가 생성 되어 있음을 알 수 있다.
이 파일을 열어 가장 마지막라인 이후에,  아래와 같은 스크립트를 추가 한다.

define( 'WP_REDIS_HOST', '10.104.0.2' );
define( 'WP_REDIS_PORT', 16379 );

// change the prefix and database for each site to avoid cache data collisions
define( 'WP_REDIS_PASSWORD', 'somepasswd' );
define( 'WP_REDIS_PREFIX', 'blog' );
define( 'WP_REDIS_DATABASE', 0 ); // 0-15

// reasonable connection and read+write timeouts
define( 'WP_REDIS_TIMEOUT', 1 );
define( 'WP_REDIS_READ_TIMEOUT', 1 );

위  스크립트에서 제일 위 라인은 서버의 내부 IP를 키인하고 저장 한다.

저장 하고 다시 브라우저로 돌아온다.

워드프레스 확인

브라우저로 돌아와 리로드하면 위의 에러코드가 다음과 같이 바뀌면 성공이다.


위와 화면에서 이제까지 설정이 성공적으로
잘 연결 되어 Redis Object Cache가 잘 설정 되었음을  알수 있다.

Redis 추가 설정

다음은 Redis의 성능을 극대화 시킬 수 있는 설정에 대해 정리하고 직접 설정하고자 한다.



이제 직접 설정하는 방법을 다음과 같이 정리한다.
아래 스크립트는 최대 메모리 512MB 와 정책은 2번 allkeys-lru 로 설정 하였다.

sudo docker exec -it wordpress-redis-1 redis-cli -a somepasswd CONFIG SET maxmemory 512mb
sudo docker exec -it wordpress-redis-1 redis-cli -a somepasswd CONFIG SET maxmemory-policy allkeys-lru

위는 redis 설정이 정상적으로 수행 된  화면이다.

 

오늘은 워드프레스 설치 및 빠른 성능을 위한  Redis 설정 방법을 알아 보았다.
Redis를 통해 홈서버에서도 빠른 성능을 자랑하는 블로그를 만들기를 희망하며
정리 하여 보았다.

 

 

Exit mobile version