服务器配置

HHL 的服务器主要使用 git 库钩子和脚本来实现自动化管理。

1. serverctrl

serverctrl 是一个专用于控制服务器的 git 仓库。

下面的 openresty 服务器的和 redis 服务器的配置文件模版都保存在这个 git 库中。

2. openresty 服务器

下面的例子是中,使用 [server] 代表服务器名称,使用 [user] 代表用户名称(分支名称)。

2.1 支持的服务器

openresty 服务器程序部署在 /opt/hhl 文件夹中,下面几个服务器都是基于 openresty 的:

服务器 服务器路径
socketserver /opt/hhl/socketserver/[user]
dtserver /opt/hhl/dtserver/[user]
httpserver /opt/hhl/httpserver/[user]

2.2 每个服务器程序的文件夹结构

每个 openresty 服务器程序实例,都有完全独立的一套配置,以 /opt/hhl/socketserver/zrong 为例,包含这样几个子文件夹:

  • logs 存放 log 日志和 pid 文件;
  • conf 其中只有一个 nginx.conf 配置文件,供当前的 openresty 服务器程序实例使用;
  • src 服务器逻辑的 lua 文件。

2.3 配置文件模版

每个 openresty 服务器程序实例都使用不同的端口、 prefix 和配置文件,完全独立。

上面提到的 nginx.conf 配置文件的模版位于 serverctrl 的 git 仓库中。模版文件为: nginx.[server].templ.conf ,用于替换模版的值文件为 nginx.[server].sub.py

下面是 nginx.socketserver.sub.py 的内容:

{
    'master':{
        'WORKER_PROCESSES' : 1,
        'LUA_CODE_CACHE':'off',
        'LISTEN':'1080',
        'SERVER_NAME':'localhost',
    },
    'zrong':{
        'LISTEN':'1081',
    },
    'allen':{
        'LISTEN':'1082',
    },
    'xeifei':{
        'LISTEN':'1083',
    },
    'zm':{
        'LISTEN':'1084',
    },
}

从上面的配置可以看出,master 是配置文件基准值,下面的属性会替换掉 master 中的同名值,然后写入配置文件。

3. redis 服务器

下面的例子是中,使用 [port] 代表 redis 服务器程序使用的端口号。

redis 服务器程序部署在 /opt/redis 文件夹中,与 openresty 不同,redis 没有采用分文件夹的方式,而是采用不同的配置文件来实现隔离。

配置文件名为: /opt/redis/etc/[port].conf

每个 redis 服务器实例,使用不同的端口号和配置文件,完全独立。

上面提到的配置文件的模版位于 serverctrl 的 git 仓库中。模版文件为: redis.templ.conf ,用于替换模版的值文件为 redis.sub.py

下面是 redis.sub.py 的内容:

{
    'master':{
        'PORT': 6379,
        'BIND': '127.0.0.1 192.168.18.18',
    },
    'zrong':{
        'PORT': 6380,
    },
    'allen':{
        'PORT': 6381,
    },
    'xeifei':{
        'PORT': 6382,
    },
    'zm':{
        'PORT': 6383,
    },
}

替换规则与 openresty 的相同。

Table Of Contents

Previous topic

黄鹤楼 builder

Next topic

月湖桥

This Page