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

时间:2018-03-20 19:18:29

标签: docker-compose traefik

我正在运行服务器,我通过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之外,所有服务都已启动。 我收到以下错误:

  

错误:对于traefik无法启动服务traefik:驱动程序在端点traefik上编程外部连接失败(2d10b64b47e62e7dcb5f94265529fb647e4ba62dbeeb43c201ea02d39f60b381):启动userland代理时出错:listen tcp 0.0.0.0:443:bind:地址已在使用中   错误:在启动项目时遇到错误。

我想知道原因是我已经在我的域名中使用了端口443了吗?! 我该如何解决这个问题?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您在Linux中使用docker:

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

sudo lsof -i -P -n | grep LISTEN

netstat -tulpn | grep LISTEN

示例:

  

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

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

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

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

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

修改

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

edit2 :(我不知道什么有效,试试吧)

# 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

答案 1 :(得分:0)

我有同样的问题。 我已经尝试了在stackoverflow和github上找到的所有内容。

这仅对我有用

sudo lsof -i -P -n | grep LISTEN

我有这样的想法:

enter image description here

然后我决定 杀死第一个PID (与 80端口 相关)

sudo kill -9 1876

然后我通过网络上的docker启动了服务,一切正常。哇!