>  기사  >  백엔드 개발  >  웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-09-05 18:23:00752검색

웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

1. 배경 소개
현대 웹 애플리케이션 개발에서 보안은 매우 중요한 고려 사항입니다. 웹 서비스에 대한 액세스를 보호하고 애플리케이션 보안을 향상시키기 위해 Nginx를 프록시 서버로 사용할 수 있습니다. 이 기사에서는 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법을 소개합니다.

2. Docker 설치
먼저 로컬 머신에 Docker를 설치해야 합니다. Docker는 애플리케이션을 쉽게 배포하고 관리하는 데 도움이 되는 오픈 소스 컨테이너화 플랫폼입니다. Docker 공식 홈페이지를 통해 사용하시는 운영체제에 맞는 Docker 버전을 다운로드 하신 후, 공식 문서에 따라 설치하시면 됩니다.

3. Nginx 프록시 서버 컨테이너 만들기

  1. 컨테이너 간 통신을 위한 새 Docker 네트워크 만들기:

    docker network create nginx-proxy
  2. 새 Nginx 프록시 서버 컨테이너를 만들고 새로 만든 네트워크에 연결:

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      jwilder/nginx-proxy

    In 이 예에서는 jwilder/nginx-proxy 미러를 사용했습니다. 이 이미지는 동일한 Docker 네트워크에서 실행 중인 컨테이너를 자동으로 감지하고 지정된 포트를 Nginx 프록시 서버의 포트 80에 매핑할 수 있습니다.

4. 웹 서비스 컨테이너 만들기

  1. 새 웹 서비스 컨테이너를 만들고 이전에 만든 Docker 네트워크에 연결합니다. 이 예에서는 간단한 Nginx 컨테이너를 웹 서비스로 사용합니다.

    docker run -d 
      --name web 
      --network nginx-proxy 
      -e VIRTUAL_HOST=example.com 
      nginx:latest

    이 예에서는 환경 변수 VIRTUAL_HOST=example.com을 지정했습니다. 이는 Nginx 프록시 서버가 example.com에 대한 모든 요청을 nginx-proxy 네트워크에 연결된 컨테이너로 전달하도록 지시합니다.

  2. 필요에 따라 더 많은 웹 서비스 컨테이너를 추가할 수 있습니다. 둘 다 nginx-proxy 네트워크에 연결되어 있는지 확인하고 해당 VIRTUAL_HOST 환경 변수를 설정하세요.

5. 구성을 확인합니다.

  1. 로컬 시스템에서 호스트 파일을 수정하고 example.com을 로컬 IP 주소로 지정합니다.

    sudo echo "127.0.0.1 example.com" >> /etc/hosts
  2. 브라우저를 열고 example.com을 입력하세요. 모든 것이 올바르게 구성되면 Nginx 기본 시작 페이지를 볼 수 있습니다.

6. 웹 서비스에 대한 접근 권한 보호
웹 서비스에 대한 접근 권한을 보호하기 위해 Nginx의 기본 인증 기능을 사용할 수 있습니다.

  1. 인증 정보를 저장하기 위해 사용자 이름과 비밀번호가 포함된 파일을 만듭니다.

    sudo sh -c "echo -n 'username:' >> /etc/nginx/.htpasswd"
    sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

    "사용자 이름"을 원하는 사용자 이름으로 바꾸세요.

  2. Nginx 프록시 서버 컨테이너에 다음 환경 변수를 추가하여 기본 인증을 활성화합니다.

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      -v /etc/nginx/.htpasswd:/etc/nginx/.htpasswd:ro 
      -e HTTP_AUTHENTICATION=true 
      jwilder/nginx-proxy
  3. Nginx 프록시 서버 컨테이너를 다시 시작합니다.

    docker restart nginx-proxy

    이제 example.com에 액세스하면 인증 대화 상자인 사용자 이름이 나타납니다. 및 비밀번호가 필요합니다.

위는 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법에 대한 단계와 샘플 코드입니다. 이러한 방식으로 우리는 웹 서비스를 효과적으로 보호하고 애플리케이션의 보안을 향상시킬 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.