Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션을 안전하게 암호화합니다.
오늘날 디지털 시대에 데이터 보안은 매우 중요한 문제입니다. 많은 애플리케이션에서 사용자 데이터와 민감한 정보 보호는 무시할 수 없습니다. 이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 보안 암호화를 구현하는 방법을 소개합니다. 동시에 독자의 이해를 돕기 위해 몇 가지 구체적인 코드 예제도 제공할 것입니다.
먼저 Docker Compose의 기본 개념을 이해해야 합니다. Docker Compose는 YAML 파일을 사용하여 여러 Docker 컨테이너를 정의하고 관리하는 데 도움이 되는 Docker용 도구입니다. Docker Compose를 사용하면 여러 컨테이너를 쉽게 만들고 관리하여 완전한 애플리케이션을 구축할 수 있습니다.
이 예에서는 Docker Compose를 사용하여 Nginx, PHP 및 MariaDB라는 세 가지 컨테이너를 만듭니다. Nginx는 HTTP 요청을 처리하고 이를 올바른 컨테이너로 전달할 수 있는 강력한 웹 서버이자 역방향 프록시 서버입니다. PHP 컨테이너는 PHP 애플리케이션을 실행하는 데 사용됩니다. MariaDB는 데이터베이스를 저장하고 관리하는 데 사용됩니다.
먼저 Docker Compose YAML 파일을 생성해야 합니다. 이 예에서는 docker-compose.yml
이라고 부릅니다. 다음은 간단한 예입니다. docker-compose.yml
。以下是一个简单的示例:
version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx/conf.d:/etc/nginx/conf.d depends_on: - php php: image: php:7.4-fpm volumes: - ./php/www:/var/www/html depends_on: - db db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=mysecretpassword volumes: - db_data:/var/lib/mysql volumes: db_data: {}
在这个例子中,我们定义了三个服务:nginx、php和db。nginx
服务使用了最新的Nginx镜像,并将容器的80端口映射到主机的80端口。同时,我们将./nginx/conf.d
目录挂载到/etc/nginx/conf.d
目录,这样我们就可以轻松地配置Nginx服务器。php
服务使用了PHP 7.4-fpm镜像,并将./php/www
目录挂载到/var/www/html
目录。最后,db
服务使用了最新的MariaDB镜像,并且通过MYSQL_ROOT_PASSWORD
环境变量设置了Root密码。同时,我们使用了一个卷db_data
来持久化存储数据库。
接下来,我们需要为我们的PHP应用程序创建一个Nginx配置文件。在./nginx/conf.d
目录下创建一个名为myapp.conf
的文件,并添加以下内容:
server { listen 80; server_name myapp.com; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
在这个配置文件中,我们定义了一个名为myapp.com
的虚拟主机,将80端口与我们的PHP应用程序关联起来。同时,我们将/var/www/html
目录设置为根目录,并将index.php
文件设为默认索引文件。在location /
部分,我们定义了当请求的文件不存在时,将请求转发到index.php
文件。location ~ .php$
部分是用来处理.php文件的请求,并将其转发到PHP容器的9000端口。
最后,我们需要为我们的PHP应用程序创建一个index.php
文件,并将其保存在./php/www
目录下:
<?php echo "Hello, World!"; ?>
这个示例非常简单,它只是输出了"Hello, World!"。你可以根据自己的需求来编写更复杂的PHP应用程序。
现在,我们可以通过运行以下命令来启动我们的应用程序:
docker-compose up -d
在启动完成后,你可以通过打开浏览器并访问http://localhost
rrreee
nginx
서비스는 최신 Nginx 이미지를 사용하고 컨테이너의 포트 80을 호스트의 포트 80에 매핑합니다. 동시에 Nginx 서버를 쉽게 구성할 수 있도록 ./nginx/conf.d
디렉터리를 /etc/nginx/conf.d
디렉터리에 마운트합니다. . php
서비스는 PHP 7.4-fpm 이미지를 사용하고 ./php/www
디렉토리를 /var/www/html
디렉토리에 마운트합니다. 마지막으로 db
서비스는 최신 MariaDB 이미지를 사용하며 루트 비밀번호는 MYSQL_ROOT_PASSWORD
환경 변수를 통해 설정됩니다. 동시에 db_data
볼륨을 사용하여 데이터베이스를 유지합니다. 다음으로 PHP 애플리케이션용 Nginx 구성 파일을 생성해야 합니다. ./nginx/conf.d
디렉토리에 myapp.conf
라는 파일을 생성하고 다음 콘텐츠를 추가합니다. rrreee
이 구성 파일에서 가상 생성 생성을 정의합니다.myapp.com
이라는 호스트를 사용하고 포트 80을 PHP 애플리케이션과 연결합니다. 동시에 /var/www/html
디렉토리를 루트 디렉토리로 설정하고 index.php
파일을 기본 인덱스 파일로 설정했습니다. location /
섹션에서는 요청한 파일이 존재하지 않을 때 요청이 index.php
파일로 전달되도록 정의합니다. location ~ .php$
부분은 .php 파일에 대한 요청을 처리하고 이를 PHP 컨테이너의 포트 9000으로 전달하는 데 사용됩니다. 마지막으로 PHP 애플리케이션용 index.php
파일을 생성하고 ./php/www
디렉터리에 저장해야 합니다. 🎜rrreee🎜예제는 다음과 같습니다. 매우 간단합니다. "Hello, World!"만 출력합니다. 필요에 따라 더 복잡한 PHP 애플리케이션을 작성할 수 있습니다. 🎜🎜이제 다음 명령을 실행하여 애플리케이션을 시작할 수 있습니다. 🎜rrreee🎜시작이 완료된 후 브라우저를 열고 http://localhost
프로그램을 방문하여 애플리케이션을 볼 수 있습니다. "Hello, World!"가 화면에 인쇄되는 것을 볼 수 있습니다. 🎜🎜Docker Compose, Nginx 및 MariaDB를 사용하여 안전하고 암호화된 PHP 애플리케이션을 성공적으로 만들었습니다. Nginx는 역방향 프록시 서버 역할을 하며 HTTP 요청을 처리하고 이를 올바른 컨테이너로 전달할 수 있습니다. PHP 컨테이너는 애플리케이션의 실행 환경이며 Nginx 컨테이너와 통신할 수 있습니다. MariaDB는 데이터베이스를 저장하고 관리하는 데 사용됩니다. 🎜🎜실제 적용에서는 SSL 인증서를 사용하여 데이터 보안을 더욱 강화할 수 있습니다. 모든 HTTP 요청이 암호화되도록 Nginx 컨테이너에 SSL 인증서를 구성할 수 있습니다. 동시에 액세스 제어 및 암호화된 저장소와 같은 MariaDB의 보안 메커니즘을 사용하여 데이터베이스의 데이터를 보호할 수도 있습니다. 🎜🎜요컨대 Docker Compose, Nginx 및 MariaDB를 사용하면 안전하고 암호화된 PHP 애플리케이션을 쉽게 만들고 관리할 수 있습니다. 이러한 도구와 기술을 사용하면 사용자 데이터와 민감한 정보의 보안을 더욱 효과적으로 보호할 수 있습니다. 이 기사가 독자들에게 도움이 되고 귀하의 애플리케이션에 대한 실용적인 참고 자료가 되기를 바랍니다. 🎜위 내용은 Docker Compose, Nginx 및 MariaDB를 사용한 PHP 애플리케이션의 보안 암호화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!