Rumah pembangunan bahagian belakang tutorial php Penyulitan selamat aplikasi PHP dengan Docker Compose, Nginx dan MariaDB

Penyulitan selamat aplikasi PHP dengan Docker Compose, Nginx dan MariaDB

Oct 12, 2023 pm 02:21 PM
nginx mariadb docker compose

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的安全加密

Penyulitan selamat aplikasi PHP dengan Docker Compose, Nginx dan MariaDB

Dalam era digital hari ini, keselamatan data merupakan isu yang sangat penting. Untuk kebanyakan aplikasi, melindungi data pengguna dan maklumat sensitif tidak boleh diabaikan. Artikel ini akan memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk melaksanakan penyulitan selamat aplikasi PHP. Pada masa yang sama, kami juga akan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dengan lebih baik.

Pertama, kita perlu memahami konsep asas Docker Compose. Docker Compose ialah alat untuk Docker yang membantu kami mentakrif dan mengurus berbilang bekas Docker dengan menggunakan fail YAML. Dengan Docker Compose, kami boleh mencipta dan mengurus berbilang bekas dengan mudah untuk membina aplikasi yang lengkap.

Dalam contoh ini, kami akan menggunakan Docker Compose untuk mencipta tiga bekas: Nginx, PHP dan MariaDB. Nginx ialah pelayan web yang berkuasa dan pelayan proksi terbalik yang boleh mengendalikan permintaan HTTP dan memajukannya ke bekas yang betul. Bekas PHP akan digunakan untuk menjalankan aplikasi PHP kami. MariaDB digunakan untuk menyimpan dan mengurus pangkalan data kami.

Pertama, kita perlu mencipta fail YAML Compose Docker. Dalam contoh ini, kami akan memanggilnya docker-compose.yml. Berikut ialah contoh mudah: 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: {}
Salin selepas log masuk

在这个例子中,我们定义了三个服务: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;
    }
}
Salin selepas log masuk

在这个配置文件中,我们定义了一个名为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!";
?>
Salin selepas log masuk

这个示例非常简单,它只是输出了"Hello, World!"。你可以根据自己的需求来编写更复杂的PHP应用程序。

现在,我们可以通过运行以下命令来启动我们的应用程序:

docker-compose up -d
Salin selepas log masuk

在启动完成后,你可以通过打开浏览器并访问http://localhostrrreee

Dalam contoh ini, kami mentakrifkan tiga perkhidmatan: nginx, php dan db. Perkhidmatan nginx menggunakan imej Nginx terkini dan memetakan port 80 bekas ke port 80 hos. Pada masa yang sama, kami melekapkan direktori ./nginx/conf.d ke direktori /etc/nginx/conf.d supaya kami boleh mengkonfigurasi pelayan Nginx dengan mudah . Perkhidmatan php menggunakan imej PHP 7.4-fpm dan melekapkan direktori ./php/www ke direktori /var/www/html. Akhir sekali, perkhidmatan db menggunakan imej MariaDB terkini dan kata laluan Root ditetapkan melalui pembolehubah persekitaran MYSQL_ROOT_PASSWORD. Pada masa yang sama, kami menggunakan volum db_data untuk mengekalkan pangkalan data.

Seterusnya, kami perlu mencipta fail konfigurasi Nginx untuk aplikasi PHP kami. Cipta fail bernama myapp.conf dalam direktori ./nginx/conf.d dan tambah kandungan berikut:

rrreee

Dalam fail konfigurasi ini, kami mentakrifkan Cipta maya hos bernama myapp.com dan kaitkan port 80 dengan aplikasi PHP kami. Pada masa yang sama, kami menetapkan direktori /var/www/html sebagai direktori akar dan fail index.php sebagai fail indeks lalai. Dalam bahagian location /, kami mentakrifkan bahawa apabila fail yang diminta tidak wujud, permintaan akan dimajukan ke fail index.php. Bahagian location ~ .php$ digunakan untuk mengendalikan permintaan untuk fail .php dan memajukannya ke port 9000 bekas PHP.

Akhir sekali, kita perlu mencipta fail index.php untuk aplikasi PHP kami dan simpan di bawah direktori ./php/www: 🎜rrreee🎜Ini Contohnya ialah sangat mudah, ia hanya mengeluarkan "Hello, World!". Anda boleh menulis aplikasi PHP yang lebih kompleks mengikut keperluan anda. 🎜🎜Kini, kami boleh memulakan aplikasi kami dengan menjalankan arahan berikut: 🎜rrreee🎜Selepas permulaan selesai, anda boleh melihat aplikasi anda dengan membuka pelayar dan melawati program http://localhost. Anda sepatutnya dapat melihat "Hello, World!" 🎜🎜Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami berjaya mencipta aplikasi PHP yang selamat dan disulitkan. Nginx bertindak sebagai pelayan proksi terbalik dan mampu mengendalikan permintaan HTTP dan memajukannya ke bekas yang betul. Bekas PHP ialah persekitaran berjalan aplikasi kami dan dapat berkomunikasi dengan bekas Nginx. MariaDB digunakan untuk menyimpan dan mengurus pangkalan data kami. 🎜🎜Dalam aplikasi praktikal, kami boleh melindungi keselamatan data dengan menggunakan sijil SSL. Kami boleh mengkonfigurasi sijil SSL dalam bekas Nginx untuk memastikan semua permintaan HTTP disulitkan. Pada masa yang sama, kami juga boleh menggunakan mekanisme keselamatan MariaDB, seperti kawalan akses dan storan yang disulitkan, untuk melindungi data dalam pangkalan data. 🎜🎜Ringkasnya, dengan Docker Compose, Nginx dan MariaDB, kami boleh mencipta dan mengurus aplikasi PHP yang selamat dan disulitkan dengan mudah. Dengan menggunakan alatan dan teknologi ini, kami boleh melindungi keselamatan data pengguna dan maklumat sensitif dengan lebih baik. Kami berharap artikel ini berguna kepada pembaca dan menyediakan rujukan praktikal untuk aplikasi anda. 🎜

Atas ialah kandungan terperinci Penyulitan selamat aplikasi PHP dengan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Apr 21, 2024 am 07:22 AM

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menjalankan thinkphp Bagaimana untuk menjalankan thinkphp Apr 09, 2024 pm 05:39 PM

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Apr 17, 2024 am 05:12 AM

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Bagaimana untuk menggunakan projek nodejs ke pelayan Bagaimana untuk menggunakan projek nodejs ke pelayan Apr 21, 2024 am 04:40 AM

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Bolehkah nodejs diakses dari luar? Bolehkah nodejs diakses dari luar? Apr 21, 2024 am 04:43 AM

Ya, Node.js boleh diakses dari luar. Anda boleh menggunakan kaedah berikut: Gunakan Cloud Functions untuk menggunakan fungsi dan menjadikannya boleh diakses secara umum. Gunakan rangka kerja Express untuk membuat laluan dan menentukan titik akhir. Gunakan Nginx untuk membalikkan permintaan proksi kepada aplikasi Node.js. Gunakan bekas Docker untuk menjalankan aplikasi Node.js dan dedahkannya melalui pemetaan port.

Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP May 03, 2024 am 08:54 AM

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.

Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Apr 27, 2024 am 08:34 AM

Tugas penting untuk pentadbir Linux adalah untuk melindungi pelayan daripada serangan atau akses haram. Secara lalai, sistem Linux disertakan dengan firewall yang dikonfigurasikan dengan baik, seperti iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), dsb., yang boleh menghalang pelbagai serangan. Mana-mana mesin yang disambungkan ke Internet adalah sasaran yang berpotensi untuk serangan berniat jahat. Terdapat alat yang dipanggil Fail2Ban yang boleh digunakan untuk mengurangkan akses haram pada pelayan. Apakah Fail2Ban? Fail2Ban[1] ialah perisian pencegahan pencerobohan yang melindungi pelayan daripada serangan kekerasan. Ia ditulis dalam bahasa pengaturcaraan Python

See all articles