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

WBOY
Lepaskan: 2023-09-05 16:42:02
asal
1052 orang telah melayarinya

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)
Salin selepas log masuk

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"]
Salin selepas log masuk

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

Flask
Salin selepas log masuk

Seterusnya, gunakan arahan berikut untuk membina imej Docker:

docker build -t web-service .
Salin selepas log masuk

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
Salin selepas log masuk

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 "";
    }
}
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

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!