Use Traefik as reverse proxy - Install Wordpress

之前的文章分别介绍了如何用Docker来搭建Wordpress如何使用Traefik。本文就将把两个文章的内容合并在一起,讲解如何使用Traefik作为reverse Proxy来安装Wordpress。

运行docker compose的命令如果成功的话,效果如下

traefikwithwp

废话不多说,直接放docker-compose.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
version: '3.3'

services:
reverse-proxy:
image: traefik
command: --api --docker
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.port=8080"
- "traefik.backend=reverse-proxy"
- "traefik.frontend.rule=Host:traefik.example.com"
- "traefik.enable=true"
- "traefik.frontend.auth.basic=test:$$apr1$$G4XsYvsX$$VvhrMcFoB03MGm.sSIlr20"
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
restart: always
volumes:
- ./wordpress:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
labels:
- "traefik.frontend.rule=Host:example.com"
volumes:
db_data:

从该文件可以看出来90%的内容跟之前的文章中的完全一样。只是Wordpress的设置上修改了一下几个东西

删除了端口映射的部分
1
2
ports:
- "8000:80"

因为前端的部分我们交给了Traefik来处理,Traefik会告诉client如何跟后端连接,因此没有必要在自定义端口了。

添加了label
1
2
labels:
- "traefik.frontend.rule=Host:example.com"

这个部分就是看你想定义用户通过哪个网址来reach你这个wordpress网站了。在我的例子里,我把basedomain定义为到达我这个网站的地方。

创建了volume
1
2
volumes:
- ./wordpress:/var/www/html/wp-content

这样的设定是把服务器上一个名字叫wordpress的文件夹跟Wordpress Container里面的wp-content文件夹做一个超链接。之后wordpress安装的插件,上传的图片等等都会在服务器这个叫wordpress的文件夹里面一一对应。这样的好处是万一哪一个插件出了毛病导致网站打不开可以直接在wordpress文件夹,把对应的插件文件夹名字改一下就可以disable这个插件了。

下一篇我们将讲解如何使用SSL证书来保护你的网站。