Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 중단점 재개를 구현하는 방법은 무엇입니까?
최신 인터넷 애플리케이션에서 재개 가능한 다운로드는 네트워크가 중단되거나 다른 이유로 전송이 중단된 경우에도 사용자가 대용량 파일을 업로드하거나 다운로드할 때 계속 전송할 수 있도록 하는 매우 중요한 기능입니다. 이 기사에서는 Docker 및 Nginx 프록시 서버를 사용하여 웹 서비스의 중단점 재개를 구현하는 방법을 소개합니다.
먼저 파일 업로드 및 다운로드 기능을 제공하는 간단한 웹 서비스를 만들어야 합니다. 다음은 Python Flask 프레임워크를 사용하여 생성된 샘플 코드입니다.
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)
다음으로 Docker를 사용하여 이 웹 서비스를 실행할 컨테이너를 생성해야 합니다. 먼저 컨테이너 이미지를 정의하기 위해 Dockerfile을 생성해야 합니다. 다음은 단순화된 Dockerfile 예입니다.
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"]
동일한 디렉터리에 요구 사항.txt 파일을 만들고 다음 콘텐츠를 추가합니다.
Flask
다음으로 다음 명령을 사용하여 Docker 이미지를 빌드합니다.
docker build -t web-service .
빌드가 완료되면, 다음 명령을 사용하여 컨테이너를 실행합니다.
docker run -p 5000:5000 -v /path/to/uploads:/uploads --name web-service-container web-service
위 명령에서는 호스트의 /uploads 폴더를 컨테이너의 /uploads 폴더에 마운트하여 업로드된 파일을 저장합니다.
이제 Docker에서 간단한 웹 서비스를 성공적으로 실행했습니다. 다음으로 Nginx 프록시 서버를 사용하여 중단점 재개 기능을 구현하겠습니다.
먼저 Nginx 구성 파일을 수정해야 합니다. Nginx의 구성 파일에 다음을 추가합니다.
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 ""; } }
위 구성에서는 Docker 컨테이너의 웹 서비스에 대한 요청을 프록시하도록 Nginx를 구성했습니다. your_domain.com을 자신의 도메인 이름이나 IP 주소로 바꾸세요.
다음으로 컨테이너에서 Nginx 프록시 서버를 실행하려면 Docker-compose 파일을 업데이트해야 합니다. 동일한 디렉터리에 docker-compose.yml 파일을 생성하고 다음 내용을 추가합니다.
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
위 구성에서는 nginx라는 서비스를 추가하고 Nginx 구성 파일을 컨테이너에 마운트했습니다.
이제 다음 명령을 사용하여 이 Docker 조합을 시작합니다.
docker-compose up
이 시점에서 Docker의 Nginx 프록시 서버를 사용하여 웹 서비스의 중단점 재개 기능을 성공적으로 구현했습니다. 대용량 파일 업로드 테스트를 통해 재개 기능이 제대로 작동하는지 확인할 수 있습니다.
요약:
이 글에서는 Docker와 Nginx 프록시 서버를 사용하여 웹 서비스의 중단점 재개 기능을 구현하는 방법을 소개합니다. 간단한 웹 서비스를 생성하고 Docker 컨테이너를 사용하여 이를 실행함으로써 이를 수행합니다. 그런 다음 요청을 Docker 컨테이너의 웹 서비스로 전달하도록 Nginx 프록시 서버를 구성했습니다. 이러한 방식으로 우리는 안정적인 파일 업로드 및 다운로드 기능과 향상된 사용자 경험을 달성했습니다.
위 내용은 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 중단점 재개를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!