图片alt

为项目创建nginx的路由规则,适用于绑定了域名的服务!

表示这个路由配置存储在服务器上的文件名

建议使用项目或者域名做名称

注意是.conf结尾

比如

www.xxx.com.conf

这个用于模板里面的,在里面用

{{ Host }}

表示

如果你里面没使用这个变量,也可以不配置

这个路由配置作用于哪个项目

为啥不是作用于服务?

前面说的

如果用一个域名能够访问的,一般可以概述为一个项目

然后使用upstream拆分的为服务

所以项目路由是以项目划分的

环境作为运行服务的横向分割

比如配置测试环境为

test.xxx.com.conf

正式环境为

www.xxx.com.conf

所以项目路由的配置和环境有关

是否启用nginx有2个点!

1.这里配置是否启用,状态是否打开

2.服务那边的配置 是否勾选了更新Nginx

生成的.conf文件存放于哪些服务器

这个要基于实际情况配置

这里内容比较多

需要查看宏相关的

也要查看模板的写法

不过我们提供了Http的一个模板

还有一个是https的模板

其实有了模板代码,你可以自己尝试修改修改


模板的写法资料如下

//http://dotliquidmarkup.org/
//https://shopify.github.io/liquid/tags/template/

对应导入的数据模型如下

 #多端口模式
     // {% assign ports={{app.listen_ports}} | split:"," %}
     // {{ ports[0] }}

    /// <summary>
    /// 项目
    /// </summary>
    public class TemProject
    {
        /// <summary>
        /// 项目ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 项目代码
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 项目域名 路由文件中配置
        /// </summary>
        public string Host { get; set; }

        /// <summary>
        /// 服务
        /// </summary>
        public List<TemService> services { get; set; }
    }
    /// <summary>
    /// 服务
    /// </summary>
    public class TemService
    {
        /// <summary>
        /// 服务ID
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 服务代码
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 模式
        /// </summary>
        public List<TemModel> models { get; set; }
    }
    /// <summary>
    /// 模式环境
    /// </summary>
    public class TemModel
    {
        /// <summary>
        /// 模式ID
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 模式名称 default prod test 等
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 容器
        /// </summary>
        public List<TemApp> apps { get; set; }
    }
    /// <summary>
    /// 容器
    /// </summary>
    public class TemApp
    {
        /// <summary>
        /// 容器IDSpider里面的
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 容器名称
        /// </summary>
        public string AppName { get; set; }

        /// <summary>
        /// 容器ID字符串
        /// </summary>
        public string AppId { get; set; }

        /// <summary>
        /// 所在服务器ID
        /// </summary>
        public int LinuxId { get; set; }

        /// <summary>
        /// APP的IP地址
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// 监听端口 默认80
        /// </summary>
        public string ListenPorts { get; set; }

        /// <summary>
        /// 外部端口
        /// </summary>
        public string OutPorts { get; set; }

        /// <summary>
        /// 服务器外IP
        /// </summary>
        public string RemoteIP { get; set; }

        /// <summary>
        /// 服务器名称 用于绑定Host
        /// </summary>
        public string LinuxName { get; set; }

        /// <summary>
        /// 服务器局域网IP
        /// </summary>
        public string LocalIP { get; set; }
    }

修改模板后

点击后面的预览可以查看结果!

保存后,回到列表页面,点击后面的重新载入

重新载入

会在对应服务器执行

nginx -t && nginx -s reload

这样可以看看有没有错误,好进行及时修改!

执行结果可以去任务列表查看!

基于模板内容和上面的配置和正在运行的服务

预览生成的.conf的内容

注意如果

upstream里面的server的IP为

127.0.0.1

表示对应的服务没有容器在运行!

发现更多文档

来自贴代码的公开项目