nginx를 사용하여 다중 도커 컨테이너 역방향 프록시
소개
앞서 docker를 소개했을 때, 동일한 서버에 여러 환경을 구축하고 서로 격리할 수 있다는 것이 장점 중 하나라고 말씀드렸습니다. 어제 실제 작업을 했는데 이렇게 함정이 많을 줄은 전혀 예상하지 못했고, 이전에 처음부터 서버를 구축하는 것보다 시간도 더 많이 걸릴 것이라고 생각하지 못했습니다. 여러 가지 계획을 변경한 끝에 드디어 해결했습니다. 중간에 아쉬운 점은 무시하고 운영 방법만 말씀드리도록 하겠습니다.
추천 튜토리얼: nginx 튜토리얼
Architecture
laradock 이미지는 서버에 이미 존재하며, laravel 환경과 nginx, mysql, redis 등의 기타 PHP를 실행할 수 있습니다.
내 생각은 역방향 프록시로 사용할 다른 nginx 컨테이너를 추가하는 것입니다. 하위 도메인 이름에 따라 배포하며 laradock이나 다른 컨테이너(wordpress, python, java 포함) 등에 배포할 수 있습니다.
Modify lradock
수정할 수 있는 곳은 한 곳뿐입니다. nginx는 계속 듣고 있습니다.
1. laradock 디렉터리로 들어갑니다.
2. .env 파일을 수정하고 NGINX_HOST_HTTP_PORT 값을 80에서 8000으로 수정합니다.
3 nginx를 중지하고 nginx를 중지합니다.
4.
5. docker-compose up -d nginx를 시작하세요
nginx가 더 이상 포트 80을 수신하지 않기 때문에 현재 브라우저에서 성공적으로 액세스할 수 없습니다.
nginx 컨테이너 추가
역방향 프록시용 새 nginx 컨테이너를 추가하세요. laradock을 설치하면 이미 nginx:alpine 이미지가 있고, 컨테이너를 직접 생성할 수 있습니다. 물론 새 이미지를 다시 가져올 수도 있습니다. (Alpine 버전 권장)
1. nginx 이미지 ID 확인, docker iamges
2. docker run --name proxy_nginx -p 80:80 -d [nginx image id]. -v 매개변수를 추가하여 구성 파일을 매핑할 수도 있는데, 이는 변경 사항이 적은 내 환경에서는 필요하지 않습니다
3. 브라우저에서 액세스하면 시작이 성공했음을 나타내는 nginx의 기본 페이지여야 합니다
4. 컨테이너에서 세대를 입력합니다. docker exec -it proxy_nginx sh
5. vim을 설치하고 apk add vim
6 호스트 IP를 확인합니다. /sbin/ip Route|awk '/default/ { print $3 } '
7. 다음 내용으로 laradock.conf를 etc/nginx/conf.d/ 디렉터리에 추가합니다.
server { listen 80; server_name you_site; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[宿主机IP]:8000; } }
1. 컨테이너를 종료한 다음 docker restart proxy_nginx
2. 8000번 포트를 열어두시면 여기를 참고하세요
결론
이때 접속하시면 laradock에서 nginx로 프록시가 가능합니다. 나중에 다른 컨테이너를 추가하려면 Proxy_nginx에 새 프록시 규칙만 추가하면 됩니다.
위 내용은 nginx를 사용하여 다중 도커 컨테이너 역방향 프록시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

도커 컨테이너를 종료하는 4 가지 명령 사용 Docker Kill & lt; Container_name & gt; 호스트 터미널의 명령 (힘 출구)

Docker 컨테이너를 다시 시작하는 방법 : 컨테이너 ID (Docker PS)를 가져옵니다. 컨테이너 중지 (Docker Stop & lt; container_id & gt;); 컨테이너를 시작하십시오 (Docker start & lt; container_id & gt;); 재시작이 성공했는지 확인하십시오 (Docker PS). 기타 방법 : Docker Compose (Docker-Compose Restart) 또는 Docker API (Docker 문서 참조).

Docker의 외부 호스트에 파일을 복사하는 방법 : Docker CP 명령 사용 : Docker CP 실행 [옵션] & lt; 컨테이너 경로 & gt; & lt; 호스트 경로 & gt;. 데이터 볼륨 사용 : 호스트에서 디렉토리를 만들고 -V 매개 변수를 사용하여 양방향 파일 동기화를 달성하기 위해 컨테이너를 만들 때 컨테이너에 디렉토리를 장착하십시오.

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

도커 프로세스보기 방법 : 1. Docker CLI 명령 : Docker PS; 2. Systemd Cli 명령 : SystemCTL 상태 Docker; 3. Docker Compose CLI 명령 : Docker-Compose PS; 4. 프로세스 탐색기 (Windows); 5. /Proc Directory (Linux).

실패한 Docker 이미지 빌드에 대한 문제 해결 단계 : Dockerfile 구문 및 종속성 버전을 확인하십시오. 빌드 컨텍스트에 필요한 소스 코드 및 종속성이 포함되어 있는지 확인하십시오. 오류 세부 사항에 대한 빌드 로그를보십시오. -표적 옵션을 사용하여 계층 적 단계를 구축하여 실패 지점을 식별하십시오. 최신 버전의 Docker Engine을 사용하십시오. -t [image-name] : 디버그 모드로 이미지를 빌드하여 문제를 디버깅하십시오. 디스크 공간을 확인하고 충분한 지 확인하십시오. 빌드 프로세스에 대한 간섭을 방지하기 위해 Selinux를 비활성화하십시오. 커뮤니티 플랫폼에 도움을 요청하고 Dockerfiles를 제공하며보다 구체적인 제안을 위해 로그 설명을 구축하십시오.
