3.5 配置站点信息
本节介绍如何配置站点信息,对应Nginx配置文件中的server部分。
站点信息下的映射规则对应着Nginx配置文件中的location部分。
来了一个网络请求,先按照端口和域名进行匹配,找到对应Nginx的哪一个站点配置
---> 然后按照URL路径匹配该站点配置下的映射规则
---> 匹配到一个映射规则后,执行映射规则下的指令,对流量进行处理或转发
站点配置流程如下:
1.确保已经添加对应的Nginx集群信息及业务服务器集群信息
2.点击引导页面的“点击新增站点”按钮
2.在对话框中输入站点名称(建议与匹配域名保持一致,不做强制要求)
3.进入站点配置界面。该界面按照左侧的标签导航栏,主要分为四个部分:
a. 站点基本信息:配置状态、域名、端口、默认转发集群、部署Nginx集群、分组、Https证书等信息。
状态:该站点是否可以部署到Nginx服务器上,还是仅存在数据库中持久化。正常使用的站点,状态都为ENABLED;
域名:对应server_name,监听的域名;
端口:对应listen,监听的端口;
默认转发集群:当没有规则匹配请求时,该请求默认反向代理到哪一个业务集群中。这一项是必须配置的,以防止流量没有匹配到任何请求的场景。默认转发集群只能从"集群管理"中已添加的集群选择,请在框内输入集群名称,会自动补全;
部署Nginx集群:该站点配置部署到哪一个Nginx集群上;
分组:该站点属于哪一个分组。分组时camel-admin
管理站点的逻辑概念,仅用于左侧栏对站点进行分组;
Https证书:是否需要部署Https证书。如果选择是,请按提示继续配置Https公钥及私钥。
如果配置Https证书,还需选择默认路径的类型:
路径的Https类型表明:该路径对Http请求和Https请求的处理策略
Http, Https:表明该路径及接受Http请求,也接受Https请求
强制Http:只接受Http请求。如果收到Https请求,则通过303的方式重定向到Http
强制Https:只接受Https请求。如果收到Http请求,则通过303的方式重定向到Https
b. 映射规则:
对应location规则。
添加一条映射规则时,首先选择匹配策略。如是前缀匹配还是正则匹配、匹配的pattern等。
在添加location规则后,请继续添加指令,相当于在location {}框中填写具体directive。
可以添加多个指令。
我们对指令进行了抽象,有proxy_pass, return, rewrite等。分类已覆盖绝大部分需求,如果仍有特殊需求,请选择custom类型,然后填写任意内容。注意省去结尾的冒号。
如果选择proxy_pass指令,请在选择框内输入集群名称,下拉表会自动出现对应集群,点击或光标移动回车即可。
选择指令后,会根据指令类型的不同,提示填写不同的信息。
c. 公共规则:
这是对location前、后的指令做了一层抽象。
如:
set $test "-";
if ( $http_cookie ~* "test=(\S+)(;.*|$)"){
set $test $1;
}
location ~* ^/test {
dp_domain test.liyang.com.;
proxy_pass http://$dp_upstream;
}
其中
set $dper "-";
if ( $http_cookie ~* "dper=(\S+)(;.*|$)"){
set $dper $1;
}
即为公共规则。
公共规则,与映射规则类似,都是指令的集合。添加公共规则,会选择类型:前置规则代表着该公共规则指令在location之前;后置规则代表着该公共规则指令在location之后。
添加公共规则后,即可按照给location添加指令的方式添加directive。
d. 版本对比:
每次发布都会对站点信息创建一个唯一版本,类似git的commit,相当于进行一次历史快照。不同历史快照之间可以比较其变化。
如果提示保存成功,则已成功添加一个站点。随后,在导航栏"站点管理"页面下,即可对站点信息进行管理,比如新增站点,编辑老站点等。
左侧有两级站点列表,第一级是分组,第二级是具体站点名。请先打开对应分组,再定位到具体站点上。