docker 代理_docker环境下使用treafik实现反向代理

在以前我们一般使用nginx做反向代理来实现在单服务器上部署多服务。

现在随着Docker的流行,现在越来越多开发人员喜欢在单服务器上使用Docker来部署多服务,这样做的好处是显而易见的:资源占用少,系统健壮性更高(崩一个容器不会影响其他容器的运行),省经费(不必为了不同的运行环境而购置多个服务器)等……。

但是nginx和docker的相处不是那么融洽,所以treafik作为天生支持docker的反向代理就诞生了,它还带有负载均衡,支持https等其他诸多优点。treafik官网:https://traefik.io/

so let’s use it

1.目录结构,certs目录是我用来保存https证书用的,并不需要非这么写。

2.docker-compose.yml

treafik运行在docker里,docker-compose是它的部署文件,类似于dockerfile但是比它更优

version: '3'

networks:

traefiknet:

driver: bridge

services:

traefik:

image: traefik:v1.5.4-alpine # 我用的这个版本,treafik的版本是个坑

command: --api --docker --docker.domain=test.com # Enables the web UI and tells Træfik to listen to docker ( --logLevel=ERROR,INFO) 这里我指定它监听domain为test.com的docker容器,domain配置可以在生成容器时加入--domain test.com实现

ports:

- "80:80" # The HTTP port

- "443:443" # The HTTPS port

- "8080:8080" # The Web UI (enabled by --api) 在treafik部署好后访问8080端口会显示treafik的管理界面

networks:

- traefiknet

labels:

- "traefik.port=8080"

- "traefik.frontend.rule=Host:test.cn" # Traefik Web UI monitor treafik管理界面的域名

- "traefik.backend=test" # Name the Traefik monitor backend

volumes:

- /srv/docker/to:/srv/docker/to

- ./traefik.toml:/etc/traefik/traefik.toml

- ./certs:/etc/traefik/certs # 因为我把证书存在certs目录下,这条语句视你们情况而定

- /var/run/docker.sock:/var/run/docker.sock # Listen to the Docker events

3.treafik的管理界面,我把里面的一些隐私信息遮盖掉了。

左边黄色的是配置的监听域名,也可以添加路径前缀来监听指定的访问请求,下面的Backend名对应右边的绿色标签名.

右边绿色的是对应的docker名和后台地址,这个一般是treafik自己生成的

4.treafik.toml

treafik的配置文件

################################################################

# Global configuration

################################################################

defaultEntryPoints = ["http", "https"]

################################################################

# Traefik log

################################################################

logLevel = "INFO"

[traefikLog]

filePath = "/srv/docker/to/traefik.log"

[accessLog]

filePath = "/srv/docker/to/access.log"

################################################################

# Entrypoints configuration

################################################################

[entryPoints]

[entryPoints.http]

address = ":80"

[entryPoints.http.redirect]

entryPoint = "https"

[entryPoints.https]

address = ":443"

[entryPoints.https.tls]

[[entryPoints.https.tls.certificates]]

certFile = "/etc/traefik/certs/test.com/test.crt"

keyFile = "/etc/traefik/certs/test.com/test.key" # 对应第步的证书文件映射设置路径

[entryPoints.traefik]

address=":8080"

################################################################

# API and dashboard configuration

################################################################

[api]

entryPoint = "traefik"

dashboard = true

################################################################

# Ping configuration

################################################################

[ping]

entryPoint = "traefik"

################################################################

# Docker configuration backend

################################################################

[docker]

endpoint = "unix:///var/run/docker.sock"

domain = ""

exposedByDefault = true

5.至此编码部分就结束了,在treafik所在的目录下输入该命令运行docker

docker-compose -f docker-compose.yml up -d

9dd14b9d7e29b0d274831014f1aa2ba8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值