本章节将详细介绍如何使docker的服务发布到nginx.
当容器或者服务发生变化后程序将使用模板发布配置到nginx上。
docker支持两种模式:
程序将会搜索服务包含相应label的服务使用模板发布到nginx,
搜索的标签
aginx.domain.0
aginx.domain.1
...
aginx.domain.N
**标签值:**使用url 方式。
使用https将自动申请TLS证书
参数说明:
实例:
模板使用优先级:
程序会查找(默认 )文件夹下定义的模板。
系统默认模板 (templates/default.tpl)
upstream {{ .UpstreamName }} { {{range .Servers}}
server {{.Host}}:{{.Port}} {{if ne .Weight 0}} weight={{.Weight}}{{end}};{{end}}
}
server {
server_name {{.Domain}};
listen 80;
{{if .AutoSSL}}
listen 443 ssl;
ssl_certificate {{.Cert.Certificate}};
ssl_certificate_key {{.Cert.PrivateKey}};
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
if ( $scheme = 'http' ) {
return 301 https://$host$request_uri;
}
{{end}}
location / {
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://{{ .UpstreamName }};
}
}
零耦合方式是使用外部文件定义每个服务的labels,此文件存储位置为:<storage>
/registry/docker-labels.conf 。其中 为存储方式。
此文件搜索container并给特定的container打labels。并且含有两种搜索模式:
1、容器名称匹配搜索:
containerName {
aginx.domain.0: http://test.aginx.io;
aginx.domain.1: http://t2.aginx.io;
}
containerName: 容器名称
2、标签匹配搜索:
aginx.labels labelName=labelValue {
标签: 标签值;
aginx.domain.0: http://consul.aginx.io;
}
labelName: 容器现有标签名称,**labelValue: ** 容器现有标签匹配值。
此种方式可以不对任何container容器做任何处理就可以直接发布服务到nginx (零耦合),并且标签和标签值的写法和label匹配模式完全一致,服务也容易迁移。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )