Use Traefik as reverse proxy - set up Traefik
前文提到了如何用Docker快速部署Wordpress网站,但是那个方法相当于在该服务器上只host一个网站。如果要在同一个服务器上部署几个网站怎么办呢?我之前的文章中有叙述过如何使用server block在Nginx服务器上部署两个网站。但是那个方法有它的局限性,首先如果选择了Nginx作为服务器,那么其他的网站也只能在Nginx上面跑,如果有一些application需要在别的服务器类型例如Apache或者Node.js上跑就需要设置不同的port,而且设置起来很麻烦。
这个时候我们就考虑可以使用reverse proxy了。传统来说可以使用Nginx作为Reverse Proxy,原理是当用户输入一个网址的时候,Reverse Proxy个输入的网址把客户引导到不同的网站folder。
不过Nginx作为reverse proxy的设置稍显麻烦,我看了一段时间也不得要领,还好在这个时候我发现了Traefik。
Traefik的设置虽然也不好上手,不过一旦知道工作原理之后很容易就可以手上添加不同的服务器了。
Docker是运行的前置条件,如果还没有安装Docker,可以参考我之前的文章
同样的,我们会使用Docker Compose来完成设置
创建Traefik Container
1 | version: '3.3' |
运行sudo docker-compose up -d
之后如果我们可以在sub domain打开Traefik的dashboard就代表我们创建好了
给Traefik Dashboard加一层保护
我们之后的container都会在Dashboard显示出来,因此最好加上一层验证来保证只有自己可以access这个页面。这一步我们需要用到Apache的工具htpasswd。使用方法有两个,一个是用在线工具,另外就是参考官方文档用命令行生成。
1 | 安装工具 |
我们需要escape在我们密码里面的每一个$
因此我们需要替换每一个$
为$$
替换过后test:$apr1$G4XsYvsX$VvhrMcFoB03MGm.sSIlr20
变成了test:$$apr1$$G4XsYvsX$$VvhrMcFoB03MGm.sSIlr20
接下来我们在Docker Compose的文件里加入一行
1 | version: '3.3' |
然后我们再运行一次sudo docker-compose up -d
就可以让它生效了