config.go 源码阅读

时间:2022-12-06 16:12:22

package main

import (
    "io/ioutil"
    "launchpad.net/goyaml"
)

// ProxyConfig Type
type ProxyConfig struct {
    Bind         string    `yaml:"bind"`  //代理服务监听端口
    WaitQueueLen int       `yaml:"wait_queue_len"`// 等待队列长度
    MaxConn      int       `yaml:"max_conn"` //并发最大连接
    Timeout      int       `yaml:"timeout"` // 请求超时时间
    FailOver     int       `yaml:"failover"`  // 后端服务允许失败次数 
    Backend      []string  `yaml:"backend"`  // 后端服务列表
    Log          LogConfig `yaml:"log"`    //日志配置项
    Stats        string    `yaml:"stats"`  //运行状态
}

// LogConfig Type
type LogConfig struct {
    Level string `yaml:"level"`   //日志级别
    Path  string `yaml:"path"`     //日志文件位置
}
//日志文件解析  并把解析结果存入pConfig中
func parseConfigFile(filepath string) error {
    if config, err := ioutil.ReadFile(filepath); err == nil {
        if err = goyaml.Unmarshal(config, &pConfig); err != nil {
            return err
        }
    } else {
        return err
    }
    return nil
}