도와주세요. . Dalao가 작성한 튜토리얼이 있는 경우 기사 링크를 게시할 수도 있습니다. . 바이두를 한 바퀴 돌고 난 뒤 혼수상태에 빠졌습니다. .
習慣沉默2017-06-20 10:07:52
折腾了一个下午,找到了docker的解决方案
github:https://github.com/JrCs/docke...
별도용기(권장방법)
도커 소켓이 공개적으로 노출된 컨테이너 서비스에 바인딩되는 것을 방지하기 위해 이 작업을 수행할 수 있습니다(nginx 노출 컨테이너에 도커 소켓을 마운트하지 마세요). 보안적인 측면에서는 더 좋습니다.
nginx 프록시를 별도의 컨테이너로 실행하려면 다음이 필요합니다.
1) 템플릿 파일 nginx.tmpl을 docker-gen 컨테이너에 마운트합니다. 다음과 같은 명령을 사용하여 최신 공식 nginx.tmpl을 얻을 수 있습니다.
으아악2)
환경 변수를 docker-gen 컨테이너의 이름이나 ID로 설정합니다.
NGINX_DOCKER_GEN_CONTAINER
예:
NGINX_PROXY_CONTAINER
프록시되는 컨테이너에 대해 Let's Encrypt 지원을 활성화하려면 다음 환경 변수를 설정하세요. 이 환경 변수는 프록시될 각 애플리케이션 컨테이너에서 선언되어야 합니다.
LETSENCRYPT_HOST
LETSENCRYPT_EMAIL
VIRTUAL_HOST
변수와 동일해야 하며 공개적으로 연결할 수 있는 도메인이어야 합니다. 쉼표 구분 기호로 여러 호스트를 지정하세요.
LETSENCRYPT_HOST
variable most likely needs to be the same as the VIRTUAL_HOST
다음 환경 변수는 선택 사항이며 Let's Encrypt 클라이언트가 작동하는 방식을 매개 변수화합니다.
LETSENCRYPT_KEYSIZE
LETSENCRYPT_KEYSIZE
다중 도메인(SAN) 인증서
5개의 인증서/주/도메인 제한이 없는 테스트 인증서를 생성하려면 LETSENCRYPT_TEST
environment variable with a value of true
(LETSENCRYPT_HOST를 사용하여 인증서를 요청하는 컨테이너에서)을 정의하세요. 모든 컨테이너에 대해 전역적으로 이 작업을 수행하려면 아래 설명에 따라 ACME_CA_URI를 설정하세요.
매시간(3600초)마다 인증서가 확인되고 향후 30일(90일/3) 내에 만료되는 모든 인증서가 갱신됩니다.
사용자 정의 구성을 위한 선택적 letsencrypt-nginx-proxy-companion 컨테이너 환경 변수입니다.
ACME_CA_URI
- Directory URI for the CA ACME API endpoint (default: https://acme-v01.api.letsencrypt.org/directory
). If you set it's value to https://acme-staging.api.letsencrypt.org/directory
letsencrypt는 주당 5개의 인증서/도메인 제한이 없는 테스트 서버를 사용합니다. 컨테이너별로 테스트 인증서를 생성할 수도 있습니다(테스트 인증서 암호화 참조)
예를 들어
으아악DEBUG
- Set it to true
진입점 스크립트 디버깅 및 LetsEncrypt 인증서 생성을 활성화하여 구성 문제를 정확히 파악하는 데 도움이 될 수 있습니다.
"com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" 라벨 - nginx-proxy 컨테이너에 이 라벨을 설정하여 docker-letsencrypt-nginx-proxy-companion 컨테이너가 이를 프록시로 사용하도록 지시합니다.
ACME_TOS_HASH
- 다른 CA의 ACME 구현을 지원하기 위해 대체 TOS 해시를 simp_le에 전달해 보겠습니다.
이 컨테이너를 사용하는 방법에 대한 다른 예를 보려면 다음을 참조하세요.
Karl Fathi의 예
Karl
조지 일리스의 예
Dmitry의 간단한 Docker 작성 예
注意,这里有个坑,也怪我自己没看清楚,如果镜image已经expose端口就设置VIRTUAL_HOST、LETSENCRYPT_HOST、LETSENCRYPT_EMAIL就行,如果没有就得在设置好三个环境变weight之后自己加入--expose 容器内应用服务端口 参数启动.如果容器是discourse这样的,就得在app.yml内设置好环境变weight之后把端为映射的80:80改为未为未映射프트:80,然后再保存重建启动。
大家讲道理2017-06-20 10:07:52
컨테이너는 호스트의 포트만 직접 바인딩할 수 있으므로(예: 10개의 웹 컨테이너가 있고 이러한 컨테이너는 모두 80 또는 443이 필요하므로 -p 매개변수는 가능하지 않으므로 컨테이너를 게이트웨이 역방향으로 사용하거나) 프록시 컨테이너, -p에는 nginx, nginx 컨테이너 및 php-fpm 및 노드와 같은 기타 웹 컨테이너를 사용합니다. nginx를 역방향 프록시로 통해 액세스하면 인증서도 nginx 서버로 직접 전달되며 443 전달이 가능합니다.
사실 기본적인 내용이지만 docker와는 전혀 관련이 없습니다
이 글은 lnmp 환경입니다.
/a/11...
여러 php-fpm, node 또는 python 백엔드 서비스가 있는 경우 nginx는 다음과 같아야 합니다
으아악