Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web?

王林
王林asal
2023-09-05 13:19:58953semak imbas

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web?

Dengan perkembangan pesat Internet, isu keselamatan penghantaran data telah menarik lebih banyak perhatian. Untuk melindungi keselamatan penghantaran data perkhidmatan web, banyak tapak web telah mula menggunakan protokol HTTPS untuk penghantaran yang disulitkan. Dalam proses pembangunan dan penggunaan, menggunakan bekas Docker untuk membina dan mengurus perkhidmatan web telah menjadi cara biasa. Artikel ini akan memperkenalkan cara mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web.

Langkah 1: Jana sijil SSL
Pertama, kita perlu menjana sijil SSL untuk memastikan integriti dan keselamatan penghantaran yang disulitkan. Kami boleh menggunakan sijil yang ditandatangani sendiri untuk tujuan ujian dan pembangunan. Andaikan bahawa fail sijil yang ingin kami hasilkan ialah server.crt dan server.key masing-masing. server.crtserver.key

步骤二:创建Dockerfile
在开始之前,创建一个Dockerfile来构建我们的Nginx代理服务器容器。

FROM nginx:latest

# 复制SSL证书
COPY server.crt /etc/nginx/conf.d/server.crt
COPY server.key /etc/nginx/conf.d/server.key

# 复制Nginx配置文件
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露HTTPS端口
EXPOSE 443

在Dockerfile中,我们从官方的Nginx镜像中构建我们的自定义镜像。然后,我们将SSL证书文件复制到/etc/nginx/conf.d/目录下,并将Nginx配置文件复制到/etc/nginx/conf.d/目录下。最后,我们通过EXPOSE命令声明要暴露的端口,这里是443端口(HTTPS默认端口)。

步骤三:创建Nginx配置文件
接下来,我们需要创建一个Nginx的配置文件,来配置代理服务器。我们可以在本地创建一个名为nginx.conf的文件,并将以下内容粘贴进去:

server {
    listen 443;
    server_name yourdomain.com;

    ssl on;
    ssl_certificate /etc/nginx/conf.d/server.crt;
    ssl_certificate_key /etc/nginx/conf.d/server.key;

    location / {
        proxy_pass http://web-service-container: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;
    }
}

在以上代码中,我们定义了一个监听443端口的服务器块。需要注意的是,server_name指令应与您的域名匹配。我们通过ssl on命令开启SSL支持,并且指定了SSL证书的路径。

然后,在location /指令中,我们将传入的请求转发到名为web-service-container的容器中的80端口。您可以在实际使用中将这个名称替换为您要代理的容器名称或IP地址。

步骤四:构建和运行Docker容器
现在我们可以通过以下命令来构建和运行我们的Docker容器了:

docker build -t nginx-proxy .
docker run -d -p 443:443 --name nginx-proxy-container nginx-proxy

以上命令会构建一个名为nginx-proxy的Docker镜像,并将该镜像运行为一个名为nginx-proxy-container的容器。我们将容器的443端口映射到宿主机的443端口。

至此,我们已经成功地在Docker容器中配置了Nginx代理服务器以支持Web服务的HTTPS访问。现在,您可以通过访问https://yourdomain.com

Langkah 2: Cipta Fail Docker

Sebelum bermula, cipta fail Docker untuk membina bekas pelayan proksi Nginx kami.
rrreee

Dalam fail Docker, kami membina imej tersuai kami daripada imej Nginx rasmi. Kemudian, kami menyalin fail sijil SSL ke direktori /etc/nginx/conf.d/ dan menyalin fail konfigurasi Nginx ke /etc/nginx/conf.d/ direktori. Akhir sekali, kami mengisytiharkan port untuk didedahkan melalui perintah EXPOSE, berikut ialah port 443 (port lalai HTTPS). #🎜🎜##🎜🎜#Langkah 3: Buat fail konfigurasi Nginx #🎜🎜#Seterusnya, kita perlu mencipta fail konfigurasi Nginx untuk mengkonfigurasi pelayan proksi. Kami boleh mencipta fail bernama nginx.conf secara setempat dan menampal kandungan berikut ke dalamnya: #🎜🎜#rrreee#🎜🎜#Dalam kod di atas, kami mentakrifkan port mendengar 443 Server blok. Ambil perhatian bahawa arahan server_name harus sepadan dengan nama domain anda. Kami mendayakan sokongan SSL melalui perintah ssl on dan menentukan laluan ke sijil SSL. #🎜🎜##🎜🎜#Kemudian, dalam arahan lokasi /, kami memajukan permintaan masuk ke 80 dalam bekas bernama port web-service-container. Anda boleh menggantikan nama ini dengan nama kontena atau alamat IP yang ingin anda proksi. #🎜🎜##🎜🎜#Langkah 4: Bina dan jalankan bekas Docker #🎜🎜#Kini kami boleh membina dan menjalankan bekas Docker kami melalui arahan berikut: #🎜🎜#rrreee#🎜🎜#Arahan di atas akan membina Docker imej bernama nginx-proxy dan jalankan imej sebagai bekas bernama nginx-proxy-container. Kami memetakan port kontena 443 ke port hos 443. #🎜🎜##🎜🎜#Pada ketika ini, kami telah berjaya mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web. Anda kini boleh mengakses perkhidmatan web anda dengan melawati https://yourdomain.com. #🎜🎜##🎜🎜#Ringkasan#🎜🎜#Artikel ini menerangkan cara mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada perkhidmatan web. Dengan menggunakan sijil SSL dan fail konfigurasi Nginx, kami dapat melindungi keselamatan penghantaran data perkhidmatan web. Pendekatan berasaskan Docker ini bukan sahaja memudahkan proses pembangunan dan penggunaan, tetapi juga menyediakan pengasingan dan kebolehskalaan kod yang berkuasa. Saya harap artikel ini berguna kepada anda, terima kasih kerana membaca! #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong akses HTTPS kepada 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