Loading [MathJax]/jax/output/HTML-CSS/config.js

도커에 워드프레스를 설치하고 서비스

시스템 2024. 1. 17. 00:43

자사 서버에 설치된 php를 업그레이드할 수 없어서, 도커에 최신버전의 환경을 구축하고, 워드프레스를 설치했다.

docker compse를 사용하여 아래 yml파일을 구성했다.

services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    ports:
      - 3019:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
    volumes:
      - /home/user/docker/wordpress/data:/var/html/www
volumes:
  db_data:

https://github.com/docker/awesome-compose/blob/master/wordpress-mysql/compose.yaml

 

구조는 데이터베이스로 mariaDB나 MysqlDB 중 하나를 선택할 수 있게 되어 있고, wordpress는 최신버전에 호스트 포트 3019와 컨테이너 포트 80번으로 매핑했다.

그리고 별도의 워드프레스 설정파일을 보기 위해, wordpress의 volumes을 설정하여 host 머신과 컨테니어의 저장공간도 매핑했다.

 

해당 yml 파일이 있는 위치에서 docker-compose up -d 를 실행하면 해당 서비스를 실행할 수 있고, 삭제는 docker-compose down --volumes를 실행하면 완전 삭제를 할 수 있다.

 

컨테이너를 실행하면 localhost:3019로 해당 워드프레스 사이트를 호스팅할 수 있으나, 도메인을 연결하고 ssl 인증을 위해서는 웹서버가 필요하다.

 

현재 작업하고 있는 자사 서버에서는 아파치 서버의 프록시 서버 기능을 활용하여 여러가지 내부 서버로 도메인을 연결해주고 있다.

이는 아파치 서버의 vhost 가능을 이용한 것으로 아파치 서버가 실행하고 있는 웹 포트 80번으로 도메인 요청이 오면, 내부의 서버로 해당 요청을 전달하는 식으로 사용할 수 있다.

 

<VirtualHost *:80>
    ServerName domain.com
    
    ProxyRequests off
    ProxyPreserveHost On
    
    ProxyPass / http://localhost:3019/
    ProxyPassReverse / http://localhost:3019/
</VirtualHost>

해당 vhosts 설정을 통해 아파치 서버로 domain.com으로 요청이 오면 내부서버 3019포트로 전달하며 해당 포트는 컨테이너의 워드프레스가 받게 된다.

 

내부 서버로 요청연결하기 위해 reverse proxy설정을 하기 위해, ProxyRequests Off, ProxyPreserveHost On을 설정한 후, Pass 경로를 설정한다.

 

만약 여기서 ssl 연동을 해야 한다면, httpd-ssl.conf 파일에 ssl 인증서 정보만 등록하여 사용하면 된다.

 

자료

https://bangu4.tistory.com/156

 

프록시 서버 구축

우분투 프록시 서버 구축 우분투 환경에서 Apache를 이용한 프록시(Proxy) 서버 구축 방법에 대해 설명드립니다. 프록시 서버 종류 Proxy 서버는 Forward Proxy 와 Reverse Proxy 서버로 2가지 서버가 존재합

bangu4.tistory.com

'시스템' 카테고리의 다른 글

프로그램 초기화와 오류 수정 로직  (0) 2024.01.29
워드프레스 테마 수정 작업  (0) 2024.01.17
Unstyled UI component  (0) 2024.01.15
PHP 버전 업 리스크  (0) 2024.01.15
노트-리엑트 데이터 주입 패턴?  (1) 2024.01.08