WCF 服务容器化的一些问题
背景
目前项目当中存有 .NET Framework 和 .NET Core 两种类型的项目,但是都需要进行容器化将其分别部署在 Windows 集群和 Linux 集群当中。在 WCF 进行容器化的时候,遇到了以下几个问题:
- 某些服务使用到了 WSHttpBinding 保护服务安全,要在容器里面加载 SSL 证书。
- WCF 服务的日志,如何重定向到标准输出流?
目前项目当中存有 .NET Framework 和 .NET Core 两种类型的项目,但是都需要进行容器化将其分别部署在 Windows 集群和 Linux 集群当中。在 WCF 进行容器化的时候,遇到了以下几个问题:
acme.sh 的部署我采用的是 docker 方式进行部署,相应的 docker-compose.yaml 文件内容如下。
|
|
其中 ./Volume
是用于挂载证书文件夹的。
删除某些文件夹的时候,如果该文件夹正在被某些程序占用,则无法删除。
默认情况下,Docker 容器如果不被销毁的话,那么它的日志会一直保留。如果我们有一个连续运行一年的 NGINX 服务容器,那么它的日志文件就会非常大。
Docker 容器的日志都会挂在到 /var/lib/docker/containers/
文件夹下,并且以下面的格式进行命名。
|
|
有三种方式限制日志大小,默认情况是全局设置,这样设置的话会对所有容器进行应用。
新的 Blog 是基于 Hugo 搭建的,原始博客内容和生成的静态资源,都是托管在 Github 仓库里面的。但 Github Pages 有时候会抽风,并且访问速度并不是很稳定,因此萌生了使用 NGINX 反向代理 Github Pages 的想法。
基本原理就是将目标站点(Github Pages) 作为一个 upstream 服务,然后 NGINX 负责将所有流量都转发到 upstream 即可。因此,我们的配置文件编写就比较简单了,只需要注意 Host 等信息需要使用 upstream 站点的信息(Github Pages)。