之前的文章分别介绍了如何用Docker来搭建Wordpress和如何使用Traefik。本文就将把两个文章的内容合并在一起,讲解如何使用Traefik作为reverse Proxy来安装Wordpress。
运行docker compose的命令如果成功的话,效果如下
废话不多说,直接放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的设置上修改了一下几个东西
删除了端口映射的部分
因为前端的部分我们交给了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证书来保护你的网站。