Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web?

WBOY
WBOYasal
2023-09-05 18:03:39706semak imbas

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web?

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web?

Dalam era pengkomputeran awan hari ini, penskalaan elastik merupakan cara penting untuk mengekalkan ketersediaan tinggi dan prestasi tinggi perkhidmatan web. Sebagai teknologi kontena yang ringan, Docker telah menjadi alat penting untuk membina seni bina penskalaan anjal. Sebagai pelayan proksi terbalik berprestasi tinggi, Nginx boleh mengagihkan trafik dengan berkesan dan meningkatkan kebolehpercayaan perkhidmatan dan keupayaan mengimbangi beban. Artikel ini akan memperkenalkan cara mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web.

Pertama, kita perlu membina perkhidmatan web mudah untuk ujian. Kami menggunakan Node.js sebagai pelayan web dan rangka kerja Express.js untuk membina aplikasi Hello World yang ringkas. Berikut ialah contoh kod untuk aplikasi Node.js yang mudah:

// app.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, World!');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Seterusnya, kami menggunakan Docker untuk menyimpan aplikasi kami. Cipta Fail Docker dalam direktori akar projek dan isikan kandungan berikut:

# Dockerfile
FROM node:alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]

Fail Docker di atas menentukan imej asas kami sebagai nod:alpine, menetapkan direktori kerja sebagai /app dan menyalin kebergantungan aplikasi dan kod ke Mirroring. Pada masa yang sama, kami mendedahkan port 3000 bekas dan melaksanakan perintah nod app.js untuk menjalankan aplikasi kami semasa memulakan bekas.

Seterusnya, kami menggunakan Docker untuk membina imej dan menjalankan bekas. Jalankan arahan berikut pada baris arahan:

$ docker build -t myapp .
$ docker run -dp 3000:3000 myapp

Arahan di atas akan membina imej bernama myapp dan memulakan bekas untuk menjalankan aplikasi kami. Kami memetakan port 3000 kontena ke port 3000 hos dan menetapkan kontena untuk dijalankan di latar belakang.

Kini, aplikasi kami berjaya dijalankan dalam bekas Docker dan boleh diakses dengan mengakses port 3000 alamat IP hos.

Seterusnya, kami akan mengkonfigurasi pelayan proksi Nginx untuk menyediakan pengimbangan beban dan fungsi penskalaan anjal. Pertama, kita perlu memasang Nginx dan mengedit fail konfigurasi Nginx. Jalankan arahan berikut dalam baris arahan:

$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo nano /etc/nginx/conf.d/default.conf

Dalam fail konfigurasi Nginx yang dibuka, isikan kandungan berikut:

# /etc/nginx/conf.d/default.conf
upstream app_servers {
    # 在这里填入你的Docker容器IP和端口信息,可以有多个
    server <CONTAINER_IP>:3000;
}

server {
    listen 80;

    location / {
        proxy_pass http://app_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Dalam fail konfigurasi di atas, kami menggunakan blok huluan untuk menentukan kluster pelayan aplikasi kami, iaitu, kami Bekas buruh pelabuhan. Kami mengisi alamat IP bekas dan port ke dalam blok pelayan dan menggunakan arahan proxy_pass untuk memproksi permintaan kepada kluster pelayan aplikasi.

Selepas menyimpan dan keluar dari fail konfigurasi Nginx, mulakan semula perkhidmatan Nginx:

$ sudo service nginx restart

Kini, pelayan proksi Nginx kami telah dikonfigurasikan. Kami boleh mengakses aplikasi kami dengan mengakses alamat IP hos Di bawah fungsi pengimbangan beban Nginx, permintaan akan diedarkan kepada mana-mana contoh dalam kelompok kontena Docker kami.

Apabila kita perlu menambah contoh bekas untuk penskalaan elastik, kita hanya perlu menjalankan semula arahan docker untuk memulakan bekas baharu. Nginx secara automatik menemui contoh kontena baharu dan memasukkannya dalam pengimbang beban.

Ringkasan:

Dengan memasukkan aplikasi kami dengan Docker dan mengkonfigurasi pelayan proksi Nginx, kami boleh mencapai kebolehskalaan anjal perkhidmatan web. Menggunakan Docker dan Nginx bersama-sama boleh mengembangkan dan mengurus perkhidmatan web dengan sangat fleksibel. Saya harap artikel ini akan membantu anda memahami cara mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal perkhidmatan web.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pelayan proksi Nginx dalam bekas Docker untuk meningkatkan kebolehskalaan anjal 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