Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengembangan mendatar perkhidmatan web?

WBOY
Lepaskan: 2023-09-05 13:32:01
asal
1071 orang telah melayarinya

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengembangan mendatar perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx dalam Docker untuk mencapai pengembangan mendatar perkhidmatan web?

Pengenalan:
Dalam pembangunan Internet hari ini, ketersediaan tinggi dan kecekapan tinggi menjadi tumpuan setiap perkhidmatan web. Untuk menyediakan perkhidmatan yang boleh dipercayai dan mencapai kebolehskalaan mendatar, kami biasanya menggunakan pelayan proksi untuk memuatkan permintaan baki. Sebagai teknologi kontena yang ringan dan mudah alih, Docker boleh memudahkan proses penempatan apabila melaksanakan pelayan proksi. Artikel ini akan memperkenalkan cara menggunakan pelayan proksi Nginx dalam Docker untuk mencapai pengembangan mendatar perkhidmatan web.

Bahagian Pertama: Pengenalan Teori

  1. Pelayan Proksi Nginx:
    Nginx ialah pelayan proksi HTTP dan terbalik berprestasi tinggi. Ia mampu mengendalikan sejumlah besar sambungan serentak dan mempunyai penggunaan memori yang rendah. Nginx dapat mencapai penskalaan mendatar perkhidmatan dengan menghantar permintaan kepada berbilang pelayan bahagian belakang dan mengedarkannya mengikut algoritma pengimbangan beban.
  2. Bekas Docker:
    Docker ialah teknologi virtualisasi ringan yang membolehkan penggunaan pantas dan mudah alih oleh aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. Setiap bekas berjalan secara bebas dan boleh digunakan pada mana-mana hos yang didayakan Docker.

Bahagian 2: Panduan Praktikal

Berikut ialah langkah-langkah untuk melaksanakan penskalaan mendatar perkhidmatan web menggunakan pelayan proksi Nginx dalam Docker:

Langkah 1: Pasang Docker dan Docker Compose
Pertama, kita perlu memasang Docker dan Docker pada tuan rumah Karang. Untuk kaedah pemasangan khusus, sila rujuk dokumentasi rasmi.

Langkah 2: Buat perkhidmatan hujung belakang
Dalam contoh ini, kami akan menggunakan dua perkhidmatan hujung belakang mudah untuk mensimulasikan senario sebenar. Cipta dua folder untuk menyimpan kod perkhidmatan backend, dan tulis skrip perkhidmatan Python mudah seperti berikut:

// backend_service_1.py
dari flask import Flask

app = Flask(__name__)

@app.route(' /')
def hello_world():

return 'Hello from Backend Service 1'
Salin selepas log masuk

jika name == '__main__':

app.run(debug=True, host='0.0.0.0')
Salin selepas log masuk
Salin selepas log masuk

// backend_service_2.py
dari flask import Flask

app = Flask(__name__)(__name__)

'/')

def hello_world():

return 'Hello from Backend Service 2'
Salin selepas log masuk

if

name == '__main__':

app.run(debug=True, host='0.0.0.0')
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Buat bekas Docker

Sebelum mencipta bekas Docker, kita perlu menulis Fail Docker Digunakan untuk membina bekas imej. Buat fail bernama "Dockerfile" dalam folder tempat kod perkhidmatan bahagian belakang disimpan dan tambah kandungan berikut:

DARI python:3

WORKDIR /app

COPY requirements.txt .

RUN pip install -- no- cache-dir -r requirements.txt

COPY .

CMD [ "python", "./backend_service_1.py" ]

Dalam folder yang sama, buat fail bernama "requirements.txt" dan tambahkan yang berikut kandungan:

flask==1.1.2

Ulangi langkah di atas untuk mencipta bekas Docker untuk perkhidmatan backend 2. Cuma tukar arahan CMD dalam Dockerfile kepada:

CMD [ "python", "./backend_service_2.py" ]

Langkah 4: Cipta bekas pelayan proksi Nginx

Buat bekas pada hos bernama "docker-compose. yml " fail dan tambah kandungan berikut:

versi: '3'

services:
nginx:

image: nginx:stable-alpine
ports:
  - 80:80
volumes:
  - ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
  - backend_service_1
  - backend_service_2
Salin selepas log masuk

backend_service_1:

build:
  context: ./backend_service_1
  dockerfile: Dockerfile
Salin selepas log masuk

backend_service_2:

build:
  context: ./backend_service_2
  dockerfile: Dockerfile
Salin selepas log masuk

Seterusnya, buat fail bernama "nginx.con" yang sama dan tambah kandungan berikut:

worker_processes 1;

events {

worker_connections 1024;
Salin selepas log masuk

}

http {

upstream backend {
    server backend_service_1:5000;
    server backend_service_2:5000;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }
}
Salin selepas log masuk
}

Langkah 5: Mulakan bekas

Buka fail di atas dan navigasi ke arah fail jalankan arahan berikut:

$ docker-compose up

Ini akan memulakan pelayan proksi Nginx serta dua bekas perkhidmatan backend.

Bahagian 3: Menguji

Kini, kami boleh menguji sama ada pelayan proksi Nginx berfungsi dengan betul dengan melawati http://localhost. Setiap kali anda memuat semula halaman, anda akan bergilir-gilir antara dua perkhidmatan hujung belakang untuk mendapatkan respons.

Bahagian 4: Kesimpulan

Dengan menggunakan pelayan proksi Nginx dalam Docker, kami boleh mencapai pengembangan mendatar perkhidmatan web. Pendekatan ini bukan sahaja memudahkan proses penggunaan tetapi juga menyediakan penyelesaian yang sangat tersedia dan cekap. Saya harap artikel ini akan membantu anda memahami cara menggunakan pelayan proksi Nginx dalam Docker untuk mencapai pengembangan mendatar perkhidmatan web.

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

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!