
Docker 이미지(docker.io/existdb/teipublisher)를 실행하는 ECS 인스턴스에서 certbot을 실행하려고 합니다. 이미지가 잘 실행되고 있으며 이를 사용자 정의 하위 도메인과 연결했습니다.teipub.dh-dev.com탄력적 IP를 사용합니다.
Https 연결을 위해 certbot을 설치하고 실행하는 것은 놀라울 정도로 어려운 것으로 입증되었습니다.
루트로 실행하면 다음을 사용하여 nginx를 설치합니다.
sudo amazon-linux-extras list | grep nginx
sudo amazon-linux-extras enable nginx1
sudo yum clean metadata
sudo yum -y install nginx
그 다음에는이것은 nginx에서 가져온 것입니다나는 /etc/nginx/conf.d/teipub.dh-dev.com.conf
다음 콘텐츠로 만듭니다.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name teipub.dh-dev.com;
}
sudo nginx -c /etc/nginx/nginx.conf
하지만 이제 새 구성을 다시 로드하려고 실행하면 다음과 같은 결과 가 나타납니다.
ECS 클러스터에서 이미지를 실행하기 위해 작업 정의를 구축할 때 호스트 포트 80과 443과 해당 컨테이너 포트 사이에 portMapping을 사용했기 때문에 이는 의미가 있습니다. 이는 포트 80(및 443)에서 이미 수신 대기 중임을 의미합니다. .
running sudo systemctl status nginx
또는 Docker 이미지를 실행 중인 클린 ECS EC2 인스턴스에서는 해당 서비스를 찾을 수 없습니다 sudo systemctl status httpd
. sudo systemctl status apache2
따라서 nginx를 실행하기 전에는 실행은커녕 설치되지도 않습니다.
그래서 내 질문은: ECS 인스턴스에 웹 서버가 이미 있지 않습니까? 그것은 무엇이며 certbot을 설치할 수 있습니까? 아니면 포트 80에서 수신 대기 중인 것은 무엇입니까?
또는 ECS 인스턴스에서 certbot을 사용하는 다른 방법이 있습니까?
그런데 이것이 관련이 없다고 생각합니다. 내 기본 도메인(dh-dev.com 및www.dh-dev.com)는 호스팅 공급자가 제공한 인증서를 통해 https 연결을 허용합니다.
===업데이트===
@dave_thompson_085의 의견에 따라 이제 호출된 프로세스가 docker-proxy
포트 80 및 443에서 수신 대기하고 있음을 이해합니다(아래 이미지 참조). 이것이 바로 nginx를 사용하여 이러한 포트에서 certbot을 구성할 수 없는 이유입니다. 진행 방법에 대한 어떤 아이디어라도 환영합니다...