Docker Compose, Nginx 및 MariaDB를 통한 PHP 애플리케이션의 빠른 마이그레이션
클라우드 컴퓨팅의 지속적인 개발과 인기로 인해 점점 더 많은 애플리케이션이 컨테이너화를 사용하여 배포 및 관리되기 시작했습니다. Docker는 현재 가장 인기 있는 컨테이너화 플랫폼 중 하나로 빠르고 가벼운 애플리케이션 패키징 및 전달 솔루션을 제공합니다.
이 기사에서는 Docker Compose, Nginx 및 MariaDB의 세 가지 도구를 사용하여 PHP 애플리케이션을 빠르게 마이그레이션하는 방법을 소개합니다.
1. 환경 준비
시작하기 전에 Docker와 Docker Compose를 설치해야 합니다. Docker는 오픈 소스 컨테이너화 플랫폼이고 Docker Compose는 여러 Docker 컨테이너를 정의하고 실행하기 위한 도구입니다.
Docker 설치 방법은 공식 문서(https://docs.docker.com/get-docker/)를 참고하세요. Docker Compose 설치는 다음 명령을 사용하여 완료할 수 있습니다.
$ sudo pip install docker-compose
2. Docker Compose 파일 생성
Docker Compose는 YAML 형식 구성 파일을 사용하여 여러 컨테이너를 정의하고 관리합니다. docker-compose.yml이라는 파일을 만들고 그 안에 애플리케이션의 컨테이너를 정의해야 합니다.
다음은 간단한 예입니다.
version: '3' services: web: build: context: . dockerfile: Dockerfile restart: always ports: - 80:80 volumes: - ./web:/var/www/html depends_on: - db db: image: mariadb:latest restart: always environment: MYSQL_DATABASE: myapp MYSQL_USER: myuser MYSQL_PASSWORD: mypassword MYSQL_ROOT_PASSWORD: myrootpassword volumes: - ./db:/var/lib/mysql
이 예에서는 두 가지 서비스(웹 및 DB)를 정의했습니다. 웹 서비스는 PHP 애플리케이션을 실행하는 데 사용되고 db 서비스는 MariaDB 데이터베이스를 실행하는 데 사용됩니다.
웹 서비스 구성 항목 설명:
db 서비스 구성 항목 설명:
3. Dockerfile 작성
Dockerfile은 Docker 이미지를 빌드하는 데 사용되는 파일입니다. 이는 이미지 구축 프로세스를 설명하는 일련의 지침을 정의합니다.
다음은 간단한 Dockerfile 예입니다.
FROM php:7.4-apache RUN apt-get update && apt-get install -y libpq-dev && docker-php-ext-install pdo pdo_mysql pdo_pgsql && a2enmod rewrite WORKDIR /var/www/html COPY . . RUN chown -R www-data:www-data /var/www/html
이 Dockerfile은 공식 php:7.4-apache 이미지를 기반으로 하며 일부 종속성과 확장 기능을 설치하고 작업 디렉터리를 /var/www/html로 설정합니다. 마지막으로 COPY 명령을 사용하여 현재 디렉터리의 모든 파일을 컨테이너의 /var/www/html 디렉터리에 복사하고 /var/www/html 디렉터리의 권한을 설정합니다.
4. 컨테이너 시작
위의 준비를 완료한 후 다음 명령을 사용하여 컨테이너를 시작할 수 있습니다.
$ docker-compose up -d
이 명령은 우리가 정의한 두 개의 컨테이너(web 및 db)를 시작하고 백그라운드에서 실행합니다.
5. Nginx 역방향 프록시 구성
기본적으로 Docker Compose는 각 서비스에 대한 기본 네트워크를 생성합니다. 컨테이너 이름을 도메인 이름으로 사용하여 컨테이너의 서비스에 액세스할 수 있습니다.
그러나 애플리케이션을 더 잘 제어하고 관리하기 위해 Nginx를 역방향 프록시로 사용하여 요청을 해당 컨테이너로 전달할 수 있습니다.
먼저 Nginx를 설치하고 구성해야 합니다. 다음 명령을 통해 설치할 수 있습니다.
$ sudo apt-get install nginx
그런 다음 Nginx 구성 파일에 다음 콘텐츠를 추가합니다.
server { listen 80; server_name your-domain.com; location / { proxy_pass http://web:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
이 구성 파일에서는 요청을 Proxy_pass 지시문을 통해 web이라는 컨테이너의 포트 80으로 전달합니다. 프록시 관련 헤더 정보를 설정합니다.
마지막으로 Nginx 서비스를 다시 시작하여 구성을 적용합니다.
$ sudo service nginx restart
6. 결론
Docker Compose, Nginx 및 MariaDB를 사용하면 PHP 애플리케이션을 빠르고 쉽게 마이그레이션하고 배포할 수 있습니다. Docker는 애플리케이션의 실행 환경을 호스트 환경과 분리하는 안정적이고 반복 가능한 환경을 제공합니다. Nginx의 역방향 프록시 기능을 사용하면 트래픽 전달 및 로드 밸런싱을 쉽게 수행할 수 있습니다. MariaDB는 안정적인 고성능 관계형 데이터베이스를 제공합니다.
이 기사가 PHP 애플리케이션의 신속한 마이그레이션에 도움과 지침을 제공할 수 있기를 바랍니다. 질문이나 우려사항이 있으시면 언제든지 문의해 주세요. Docker로 애플리케이션을 구축하고 관리하는 즐거움을 누려보세요!
위 내용은 Docker Compose, Nginx 및 MariaDB를 사용한 PHP 애플리케이션의 빠른 마이그레이션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!