优化配置
发布于
- 修改于
2020/03/12
- 大约需要 2 分钟
- 848 字
代理服务器
我决定采用Caddy来代替nginx,因为Caddy的文档虽然更少,但是更加清楚。
我们只需要把/etc/caddy/
给映射到一个Volume上,就可以在宿主机上修改Caddyfile
。
取消自动https支持
由于我们没有https,所以我们反而要取消https。取消的方法很简单:只监听80端口即可。
反向代理
设置文件的结构非常简单。
举个例子,针对gitea.debian.local
,我们需要映射到gitea:3000
上,那我们只需要在Caddyfile
里加入:
gitea.debian.local:80 {
reverse_proxy gitea:3000
}
配置简洁清晰,而且无需考虑具体协议,即使是portainer使用的websocket也能很好地转接。
缺点
不支持ssh反向代理
博客
思来想去还是觉得本地托管是坠吼的选择。
为此,我需要将drone生成的文件放入文件服务器的某一个地方。最简单的方法就是:
- 建立一个volume,挂载到文件服务器下
- 让drone把文件写到host里对应volume的地址
或者可以反过来,让drone写在host某一位置,然后将caddy的文件夹映射到该位置。
如果要获得drone挂载host的权限,需要获得drone的管理员,这需要在创建drone的时候在env里加入DRONE_USER_CREATE=username:octocat,admin:true
,其中把octocat换成gitea里对应的用户名。
之后只需要写出正确的drone.yml
即可。比如说:
kind: pipeline
name: default
steps:
- name: build
image: alpine
volumes:
- name: apache_data
path: /tmp/data/
commands:
- ls /tmp/data
- apk add hugo
- apk add git
- git submodule init
- git submodule update
- hugo -d /tmp/data
- ls /tmp/data
volumes:
- name: apache_data
host:
path: /var/lib/docker/volumes/apache_data/_data/
对于文件服务器,为了简便起见,我依然使用了caddy,一机多能:
blog.debian2.local:80 {
file_server {
root /hugo
}
}
然后将对应的volume挂载到/hugo下即可。如此一来,自动修改,自动推送,自动更新,一气呵成。
双版本
由于我需要维护双版本(gitlab和gitea),而他们的根目录明显不同,那么就需要两个版本的toml,并使用hugo --config b.config
来选择正确的版本。
总结
下一步只需要再添加新功能和调整hugo了。