웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?
1. 배경 소개
현대 웹 애플리케이션 개발에서 보안은 매우 중요한 고려 사항입니다. 웹 서비스에 대한 액세스를 보호하고 애플리케이션 보안을 향상시키기 위해 Nginx를 프록시 서버로 사용할 수 있습니다. 이 기사에서는 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법을 소개합니다.
2. Docker 설치
먼저 로컬 머신에 Docker를 설치해야 합니다. Docker는 애플리케이션을 쉽게 배포하고 관리하는 데 도움이 되는 오픈 소스 컨테이너화 플랫폼입니다. Docker 공식 홈페이지를 통해 사용하시는 운영체제에 맞는 Docker 버전을 다운로드 하신 후, 공식 문서에 따라 설치하시면 됩니다.
3. Nginx 프록시 서버 컨테이너 만들기
컨테이너 간 통신을 위한 새 Docker 네트워크 만들기:
docker network create nginx-proxy
새 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. 웹 서비스 컨테이너 만들기
새 웹 서비스 컨테이너를 만들고 이전에 만든 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 네트워크에 연결된 컨테이너로 전달하도록 지시합니다.
5. 구성을 확인합니다.
로컬 시스템에서 호스트 파일을 수정하고 example.com을 로컬 IP 주소로 지정합니다.
sudo echo "127.0.0.1 example.com" >> /etc/hosts
6. 웹 서비스에 대한 접근 권한 보호
웹 서비스에 대한 접근 권한을 보호하기 위해 Nginx의 기본 인증 기능을 사용할 수 있습니다.
인증 정보를 저장하기 위해 사용자 이름과 비밀번호가 포함된 파일을 만듭니다.
sudo sh -c "echo -n 'username:' >> /etc/nginx/.htpasswd" sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
"사용자 이름"을 원하는 사용자 이름으로 바꾸세요.
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
Nginx 프록시 서버 컨테이너를 다시 시작합니다.
docker restart nginx-proxy
이제 example.com에 액세스하면 인증 대화 상자인 사용자 이름이 나타납니다. 및 비밀번호가 필요합니다.
위는 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법에 대한 단계와 샘플 코드입니다. 이러한 방식으로 우리는 웹 서비스를 효과적으로 보호하고 애플리케이션의 보안을 향상시킬 수 있습니다. 이 기사가 도움이 되기를 바랍니다!
위 내용은 웹 서비스에 대한 액세스를 보호하기 위해 Docker에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!