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!