
我正在嘗試在執行 docker 映像 (docker.io/existdb/teipublisher) 的 ECS 實例上執行 certbot。該圖像運行良好,我已將其與自訂子域關聯teipub.dh-dev.com使用彈性IP。
事實證明,嘗試安裝並執行 certbot 以便取得 Https 連線非常困難。
以 root 身份運行,我使用以下命令安裝 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 以及相應的容器連接埠之間使用了連接埠映射,這意味著某些東西已經在連接埠80(以及443)上偵聽。
正在運行sudo systemctl status nginx
,sudo systemctl status httpd
或sudo systemctl status apache2
在運行 docker 映像的乾淨 ECS EC2 執行個體上找不到這些服務。因此,在我嘗試執行 nginx 之前,nginx 尚未安裝,更不用說運行了。
所以我的問題是:ECS實例上不是已經有一個Web伺服器了嗎?它是什麼?或者說,80埠正在監聽什麼?
或者 - 是否有其他方法在 ECS 實例上使用 certbot?
順便說一句,我認為這不相關,我的主域(dh-dev.com 和www.dh-dev.com)允許 https 連接,可能是透過我的託管提供者提供的憑證。
===更新===
根據 @dave_thompson_085 的評論,我現在明白(請參閱下圖)一個名為的進程docker-proxy
正在偵聽連接埠 80 和 443。任何關於如何進步的想法都非常受歡迎...