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/', 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!