by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

Raspberry很便宜有相当多的运用,例如有人拿来当Wifi的router,
游戏机,监视器及许许多多物联网相关运用,我则是用他来当一台HAProxy。

长话短说,因为有一台老旧的Windows伺服器,他运行旧版本的PHP及Apache,并且无法设置HTTPS证书,所以就想说
透过HAProxy来帮忙啦。让这台老旧伺服器也可以有https的网址,
所以来分享我的docker-compose.yml设。

必要知识:
此文章假设,您已了解haproxy的相关设置了。
如果您还不会在自己的树莓派安装,docker及docker-compose请参考如下网址:
https://www.ccc.tc/article/install-docker-and-docker-compose-on-raspberrypi

关於docker-compose的设置如下:
以下是我的docker-compose.yml设置
version: '3.6'
services:
 haproxy:
  network_mode: host
  image: haproxy
  restart: always
  environment:
    backend_server: 192.168.1.100
  volumes:
    - ./cert.pem:/etc/ssl/cert.pem
    - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
这里有几个重要设置
一、restart: always
当成功启动后,下次再重开,就能自动启动docker-compose了,不用再进入Raspberry里去上命令docker-compose up。
关於重启原则(restart policy),至少需成功的启动10秒后,才代表成功启动,下次重启时,才会自动重启。

二、network_mode: host
这是Linux才能设置的网络模式,可直接让容器绑定的连绑埠绑到host上
(所谓的host指的就是Raspberry,所以就是绑在树莓派的eth0网卡上),
所以我能将Raspberry上进来的流量直接导入到另一台实体的主机(backend_server)上啦。

三、enviroment
我们可以在,enviroment中设置backend_server的位置,
就可以在HAProxy的设置档中,使用这个设置了。

四、volumens
挂载了证书,及haproxy.cfg的设置。

关於docker-compose的基本命令基本知识:
我们可以创建一个haproxy的数据夹,放入docker-compose.yml档及证书,还有haproxy的设置档。
然后,运行
docker-compose up -d
即可启动罗。
停止是:
docker-compose down
如果想要查看log,我们可以运行
docker-compose logs -f


下方是个简单的示意图:
蓝色线是SSL加密的网址,流量进入到HAProxy后,再将流量导向后端(backend_server) ,未加密的网址。


补充
本文假设您已了解haproxy.cfg的各项设置,不对此进行说明,请自行请教Google老师了。
有些与此docker-compose相关的片段的数据供参考。
server web ${backend_server}:80 check cookie s1

#或是
backend mysql
   mode tcp
   server database ${backend_server}:3306
上方的变量,${backend_server}便是我们在docker-compose.yml中设置的192.168.1.100。





 

Tags: docker

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker,laravel

[D-Laravel]./console node

进行Laravel开发时,有时我们会需要透过npm安装nodejs的包,但是偏偏我们系统中的Node又不够新。 或许因某些因素没法升级,例如要跑旧版的nodejs进程等。 其实我们可以透过简单的命令,用docker,让我们就能使用最新版本的node image来挂载host端的/sites数据夹罗。 这么一来我们就可以随时运行新版本的npm命令啦。

openai,flax,docker

用容器跑OpenAI官方教程的Python(Flax)

如果您登录了openai的网站,可在此处看到官方的教程说明https://beta.openai.com/docs/quickstart/build-your-applicationAPI的KEY的申请,就在这页的下方就有按钮了+ Create new secret key本篇教您用Docker跑官方OpenAI运行环境。

docker,php,cli

MacOS的php不给力,用docker运行laravel installer

非常简单呀,加个「别名」就好了alias laravel='docker run --rm -v ${PWD}:/var/www/html -v ~/.dlaravel/cache:/home/dlaravel/.composer/cache -ti deviny/fpm:8.1.10 /home/dlaravel/.composer/vendor/bin/laravel'