Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web?

王林
王林asal
2023-09-06 08:09:221288semak imbas

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web?

Apabila menggunakan bekas Docker untuk menggunakan perkhidmatan web, untuk memastikan ketersediaan dan kestabilan perkhidmatan yang tinggi, biasanya perlu mengkonfigurasi pemeriksaan kesihatan untuk mengesan dan mengendalikan kegagalan tepat pada masanya. Sebagai pelayan proksi terbalik berprestasi tinggi, Nginx sangat mudah dan praktikal untuk mengkonfigurasi pemeriksaan kesihatan dalam bekas Docker. Artikel ini akan memperkenalkan cara mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web.

Langkah-langkahnya adalah seperti berikut:

1 Buat fail Docker

Mula-mula anda perlu mencipta fail Docker untuk membina bekas Nginx. Dalam fail, tambahkan kandungan berikut:

FROM nginx

# 将自定义的配置文件复制到容器中
COPY nginx.conf /etc/nginx/nginx.conf

# 将健康检查脚本复制到容器中
COPY check.sh /etc/nginx/check.sh

# 添加执行权限
RUN chmod +x /etc/nginx/check.sh

# 设置容器启动时执行的命令
CMD /etc/nginx/check.sh && nginx -g "daemon off;"

2 Cipta fail konfigurasi Nginx tersuai

Buat fail konfigurasi Nginx tersuai nginx.conf mengikut keperluan. Fail ini menentukan konfigurasi peraturan proksi Nginx dan pemeriksaan kesihatan.

user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    upstream backend {
        server app1:8080;
        server app2:8080;
    }

    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://backend;
        }

        location /health {
            return 200;
        }
    }
}

Dalam fail konfigurasi, kami menggunakan huluan ringkas yang mentakrifkan dua perkhidmatan hujung belakang, di mana app1 dan app2 ialah nama kontena bagi dua perkhidmatan hujung belakang masing-masing. Dalam lokasi/kesihatan, kami menentukan laluan pemeriksaan kesihatan Apabila permintaan mengembalikan 200, ia membuktikan bahawa perkhidmatan itu normal.

3. Buat skrip pemeriksaan kesihatan

Dalam bekas, adalah amalan biasa untuk melakukan pemeriksaan kesihatan melalui skrip. Cipta fail bernama check.sh dalam bekas dan tambah kandungan berikut:

#!/bin/bash

# 要检查的服务器地址
HOST=localhost
# 要检查的服务器端口
PORT=80

# 循环检查服务是否正常,直到服务启动成功或超过最大重试次数
for i in {1..10}
do
    # 请求服务的健康检查路径,并获取返回的HTTP状态码
    STATUS=$(curl -LI "$HOST:$PORT/health" -o /dev/null -w '%{http_code}
' -s)

    # 如果HTTP状态码为200,证明服务正常,退出脚本
    if [ $STATUS -eq 200 ]; then
        echo "Health check passed, Nginx is up and running."
        exit 0
    fi

    echo "Waiting for Nginx to start..."
    sleep 1
done

# 如果超过重试次数,打印错误信息并退出脚本
echo "Health check failed, Nginx failed to start."
exit 1

4 Bina dan jalankan bekas Nginx

Selepas melengkapkan langkah di atas, gunakan arahan berikut untuk membina dan menjalankan bekas Nginx:

.
docker build -t my-nginx .
docker run -d -p 8080:80 --name my-nginx-container my-nginx

Dengan arahan di atas, kami membina imej bernama my-nginx dan menjalankan bekas bernama my-nginx-container.

Ringkasan

Melalui langkah di atas, kami berjaya mengkonfigurasi pelayan proksi Nginx dalam bekas Docker dan menambah fungsi pemeriksaan kesihatan. Dengan kerap menghantar permintaan HTTP ke laluan pemeriksaan kesihatan, kami boleh menentukan sama ada perkhidmatan tersebut berfungsi dengan betul. Konfigurasi ini boleh meningkatkan ketersediaan dan kestabilan perkhidmatan web. Jika perlu, lebih banyak konfigurasi dan pengoptimuman boleh dibuat berdasarkan keperluan sebenar.

Semoga artikel ini membantu anda mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk menyokong pemeriksaan kesihatan perkhidmatan web!

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