Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan penyambungan semula titik putus perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan penyambungan semula titik putus perkhidmatan web?

WBOY
WBOYasal
2023-09-05 15:52:521026semak imbas

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan penyambungan semula titik putus perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx dalam Docker untuk melaksanakan penyambungan semula titik putus perkhidmatan web?

Dalam aplikasi Internet moden, muat turun boleh disambungkan adalah fungsi yang sangat penting. Ia membolehkan pengguna meneruskan pemindahan semasa memuat naik atau memuat turun fail besar, walaupun rangkaian terganggu atau pemindahan terganggu atas sebab lain, dengan itu meningkatkan pengalaman pengguna. Dalam artikel ini, kami akan memperkenalkan cara menggunakan pelayan proksi Docker dan Nginx untuk melaksanakan penyambungan semula titik putus perkhidmatan web.

Pertama, kita perlu mencipta perkhidmatan web mudah untuk menyediakan fungsi muat naik dan muat turun fail. Berikut ialah kod sampel yang dibuat menggunakan rangka kerja Flask Python:

from flask import Flask, request, send_from_directory

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = '/uploads'

@app.route('/upload', methods=['POST'])
def upload():
    f = request.files['file']
    f.save(os.path.join(app.config['UPLOAD_FOLDER'], f.filename))
    return 'File uploaded successfully'

@app.route('/download/<filename>', methods=['GET'])
def download(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Seterusnya, kita perlu menggunakan Docker untuk mencipta bekas untuk menjalankan perkhidmatan web ini. Pertama, kita perlu mencipta Dockerfile untuk menentukan imej kontena kita. Berikut ialah contoh fail Docker yang dipermudahkan:

FROM python:3.7

WORKDIR /app

COPY requirements.txt .

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

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

Buat fail requirements.txt dalam direktori yang sama dan tambah kandungan berikut:

Flask

Seterusnya, gunakan arahan berikut untuk membina imej Docker:

docker build -t web-service .

Setelah binaan selesai, anda boleh menggunakan Perintah berikut digunakan untuk menjalankan bekas:

docker run -p 5000:5000 -v /path/to/uploads:/uploads --name web-service-container web-service

Dalam arahan di atas, kami melekapkan folder /uploads hos ke folder /uploads dalam bekas untuk menyimpan fail yang dimuat naik.

Kini, kami telah berjaya menjalankan perkhidmatan web ringkas di Docker. Seterusnya, kami akan menggunakan pelayan proksi Nginx untuk melaksanakan fungsi resume titik putus.

Pertama, kita perlu mengubah suai fail konfigurasi Nginx. Dalam fail konfigurasi Nginx, tambahkan yang berikut:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://web-service-container:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

Dalam konfigurasi di atas, kami mengkonfigurasi Nginx kepada permintaan proksi kepada perkhidmatan web kontena Docker. Perhatikan menggantikan your_domain.com dengan nama domain atau alamat IP anda sendiri.

Seterusnya, kami perlu mengemas kini fail karang Docker untuk menjalankan pelayan proksi Nginx dalam bekas. Cipta fail docker-compose.yml dalam direktori yang sama dan tambah kandungan berikut:

version: '3'

services:
  web-service:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - /path/to/uploads:/uploads

  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 80:80
    depends_on:
      - web-service

Dalam konfigurasi di atas, kami menambah perkhidmatan bernama nginx dan memasang fail konfigurasi Nginx ke dalam bekas.

Sekarang, gunakan arahan berikut untuk memulakan gabungan Docker ini:

docker-compose up

Pada ketika ini, kami telah berjaya menggunakan pelayan proksi Nginx dalam Docker untuk melaksanakan fungsi resume titik putus perkhidmatan Web. Melalui ujian memuat naik fail besar, kami boleh mengesahkan sama ada fungsi resume berfungsi dengan baik.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan pelayan proksi Docker dan Nginx untuk melaksanakan fungsi resume titik putus perkhidmatan Web. Kami melakukan ini dengan mencipta perkhidmatan web mudah dan menjalankannya menggunakan bekas Docker. Kami kemudiannya mengkonfigurasi pelayan proksi Nginx untuk memajukan permintaan kepada perkhidmatan web dalam bekas Docker. Dengan cara ini, kami mencapai fungsi muat naik dan muat turun fail yang boleh dipercayai serta pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan penyambungan semula titik putus 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