首页 文章

traefik外部连接失败 - 443已在使用中

提问于
浏览
0

我正在运行服务器,我通过cloudflare将我的域名指向我的服务器IP,并通过LetsEncrypt为我的域名签署了SSL证书 . 我的服务器使用porto 443为ssl流量运行apache webserver . 我安装了docker并运行了几个容器 . 我的目标是使用端口443启动并运行traefik,并通过它路由所有docker流量 . 这甚至可能吗?

我在这里使用了这个:https://www.linuxserver.io/2018/02/03/using-traefik-as-a-reverse-proxy-with-docker/来编写我的traefik.toml文件和我的docker-compose文件 .

但是,每当我启动docker-compose时,除了traefik之外,所有服务都会启动 . 我收到以下错误:

错误:for traefik无法启动服务traefik:驱动程序无法在 endpoints traefik上编程外部连接(2d10b64b47e62e7dcb5f94265529fb647e4ba62dbeeb43c201ea02d39f60b381):启动userland代理时出错:listen tcp 0.0.0.0:443:bind:地址已在使用错误:启动项目时遇到错误 .

我想知道原因是我已经使用端口443作为我的域名了吗?!我怎样才能解决这个问题?

谢谢你的帮助!

1 回答

  • 0

    您在Linux中使用docker:

    其中一些命令应该为您提供使用它们的线索:

    sudo lsof -i -P -n | grep LISTEN
    
    netstat -tulpn | grep LISTEN
    

    例:

    docker-pr 2405 root 4u IPv6 28930 0t0 TCP *:443(LISTEN)

    如果443被docker占用......这意味着你在某些YML中有一个暴露的端口443,除了Traefik之外(如果是其他应用程序继续更改端口或关闭它[pkill])

    您可以尝试在不同的YML中分离YML的"Services"并逐个打开它们,以便找到导致冲突的图像(如果将它们分开,请记住创建适当的外部“Networks” . )

    (顺便说一句......我建议第一个图像开始是traefik之一)

    (您也可以复制并粘贴YML文件以获得更好的帮助 . )

    编辑


    RewriteEngine on 
    RewriteCond %{HTTPS} off 
    # RewriteCond %{SERVER_PORT} ^9000$ 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}:9443%{REQUEST_URI}
    

    edit2 in toml config traefik :(我不知道什么有效,试试吧)


    # Entrypoints, http and https
    [entryPoints]
    
    # http should be redirected to https
    [entryPoints.http]
    address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
    
    # https is the default
    [entryPoints.https]
    address = ":9443"
    
    [entryPoints.https.tls]
    

    我遇到的另一个解决方案是将你的主apache作为代理隧道,但是你不需要带来traefik:P

相关问题