Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengkonfigurasi pelayan proksi Nginx menggunakan bekas Docker untuk menyulitkan perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx menggunakan bekas Docker untuk menyulitkan perkhidmatan web?

WBOY
WBOYasal
2023-09-06 08:48:311592semak imbas

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx menggunakan bekas Docker untuk menyulitkan perkhidmatan web?

Cara mengkonfigurasi pelayan proksi Nginx untuk menyulitkan perkhidmatan web menggunakan bekas Docker

Dalam dunia Internet hari ini, melindungi keselamatan perkhidmatan web telah menjadi semakin penting. Untuk melindungi data sensitif daripada dicuri atau diganggu semasa penghantaran, ia telah menjadi amalan standard untuk menggunakan protokol HTTPS untuk menyulitkan perkhidmatan web. Artikel ini akan memperkenalkan cara menggunakan bekas Docker untuk mengkonfigurasi pelayan proksi Nginx untuk melaksanakan penyulitan perkhidmatan web.

Docker ialah platform kontena sumber terbuka yang membantu pembangun memudahkan proses penempatan dan pengurusan aplikasi. Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang boleh mengendalikan ratusan atau ribuan sambungan serentak. Menggabungkan Docker dan Nginx, kami boleh mengkonfigurasi pelayan proksi web yang selamat dan cekap dengan mudah.

Langkah 1: Pasang Docker

Mula-mula, kita perlu memasang Docker. Anda boleh mencari kaedah pemasangan yang sesuai untuk sistem pengendalian anda di laman web rasmi Docker. Setelah pemasangan selesai, jalankan arahan berikut untuk mengesahkan bahawa Docker dipasang dengan betul:

$ docker --version

Langkah 2: Buat bekas Docker

Seterusnya, kami akan mencipta bekas Docker untuk menjalankan pelayan Nginx. Jalankan arahan berikut dalam baris arahan:

$ docker run --name nginx-proxy -p 80:80 -p 443:443 -d nginx

Dalam arahan di atas, kami menggunakan perintah docker run untuk mencipta bekas bernama nginx-proxy dan menetapkan Port hos 80 dipetakan ke port 80 kontena dan port 443 dipetakan ke port 443 kontena. Kami menentukan imej asas bekas sebagai Nginx dan menggunakan parameter -d untuk menjalankan bekas di latar belakang. docker run命令来创建一个名为nginx-proxy的容器,并将主机的80端口映射到容器的80端口,443端口映射到容器的443端口。我们指定了容器的基础镜像为Nginx,并使用了-d参数来后台运行容器。

步骤3:配置Nginx代理服务器

在容器中运行Nginx服务器后,我们需要配置代理服务器以将HTTP请求转发到实际的Web服务。通过修改Nginx的配置文件nginx.conf,我们可以完成此项配置。

首先,找到Nginx容器的ID或名称。可以使用以下命令来列出正在运行的Docker容器:

$ docker ps

在输出结果中找到nginx-proxy容器的ID或名称。

接下来,使用以下命令进入容器的shell环境:

$ docker exec -it <nginx-proxy-container-id> /bin/bash

<nginx-proxy-container-id></nginx-proxy-container-id>替换为实际的容器ID或名称。

进入容器的shell环境后,找到Nginx的配置文件所在位置:

$ cd /etc/nginx/conf.d

使用文本编辑器(如Vi或Nano)打开default.conf文件:

$ vi default.conf

在文件中添加以下配置,用于将HTTP请求转发到实际的Web服务。假设实际的Web服务在本地的8000端口运行:

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://localhost:8000;
  }
}

保存并退出文件。

步骤4:配置HTTPS加密

为了实现Web服务的加密,我们需要配置Nginx支持HTTPS。首先,我们需要生成SSL证书和私钥文件。可以使用免费的证书颁发机构(如Let's Encrypt)或自签名证书来生成。

将证书和私钥文件保存到容器中的/etc/nginx/ssl目录下。然后,修改default.conf文件,以启用HTTPS。在文件中添加以下配置:

server {
  listen 443 ssl;
  server_name example.com;

  ssl_certificate /etc/nginx/ssl/certificate.crt;
  ssl_certificate_key /etc/nginx/ssl/private.key;

  location / {
    proxy_pass http://localhost:8000;
  }
}

保存并退出文件。

步骤5:重启Nginx服务器

完成上述配置后,我们需要重启Nginx服务器以使配置生效。在容器的shell环境中运行以下命令:

$ service nginx restart

现在,通过访问https://example.com

Langkah 3: Konfigurasikan Pelayan Proksi Nginx

Selepas menjalankan pelayan Nginx dalam bekas, kita perlu mengkonfigurasi pelayan proksi untuk memajukan permintaan HTTP ke perkhidmatan web sebenar. Kita boleh melengkapkan konfigurasi ini dengan mengubah suai fail konfigurasi Nginx nginx.conf.

Mula-mula, cari ID atau nama bekas Nginx. Anda boleh menggunakan arahan berikut untuk menyenaraikan bekas Docker yang sedang berjalan:

rrreee

Cari ID atau nama bekas nginx-proxy dalam output.
  • Seterusnya, masukkan persekitaran cangkerang bekas menggunakan arahan berikut:
  • rrreee
  • Ganti <nginx-proxy-container-id></nginx-proxy-container-id> dengan ID atau nama bekas sebenar anda.
  • Selepas memasuki persekitaran shell bekas, cari lokasi fail konfigurasi Nginx:
  • rrreee
Gunakan editor teks (seperti Vi atau Nano) untuk membuka fail default.conf: 🎜 rrreee🎜Tambah dalam fail Konfigurasi berikut digunakan untuk memajukan permintaan HTTP ke perkhidmatan web sebenar. Dengan mengandaikan perkhidmatan web sebenar berjalan secara setempat pada port 8000: 🎜rrreee🎜 Simpan dan keluar dari fail. 🎜🎜Langkah 4: Konfigurasikan penyulitan HTTPS 🎜🎜Untuk melaksanakan penyulitan perkhidmatan web, kami perlu mengkonfigurasi Nginx untuk menyokong HTTPS. Pertama, kita perlu menjana sijil SSL dan fail kunci peribadi. Ini boleh dijana menggunakan pihak berkuasa sijil percuma (seperti Let's Encrypt) atau sijil yang ditandatangani sendiri. 🎜🎜Simpan sijil dan fail kunci peribadi ke direktori /etc/nginx/ssl dalam bekas. Kemudian, ubah suai fail default.conf untuk mendayakan HTTPS. Tambahkan konfigurasi berikut pada fail: 🎜rrreee🎜Simpan dan keluar dari fail. 🎜🎜Langkah 5: Mulakan semula pelayan Nginx🎜🎜Selepas melengkapkan konfigurasi di atas, kita perlu memulakan semula pelayan Nginx untuk konfigurasi berkuat kuasa. Jalankan arahan berikut dalam persekitaran shell bekas: 🎜rrreee🎜 Sekarang, dengan melawati https://example.com, anda sepatutnya dapat melihat perkhidmatan web anda berjalan dengan cara yang selamat. 🎜🎜Ringkasan🎜🎜Dengan bekas Docker dan pelayan proksi Nginx, kami boleh melaksanakan penyulitan perkhidmatan web dengan mudah. Dalam artikel ini, kami membincangkan cara memasang Docker, mencipta bekas Nginx, mengkonfigurasi pelayan proksi dan mendayakan penyulitan HTTPS. Saya harap artikel ini membantu anda memahami cara mengamankan perkhidmatan web. 🎜🎜Pautan rujukan: 🎜🎜🎜Tapak web rasmi Docker: https://www.docker.com/🎜🎜Tapak web rasmi Nginx: https://nginx.org/🎜🎜Let's Encrypt website rasmi: https://letsencrypt.org /🎜🎜

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pelayan proksi Nginx menggunakan bekas Docker untuk menyulitkan perkhidmatan web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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