openlmis/nginxopenlmis-nginx镜像基于官方Nginx镜像构建,集成Consul(服务注册中心)和Consul Template,在OpenLMIS环境中充当API网关,提供动态路由功能。通过监听Consul服务注册的变化,Consul Template自动更新Nginx配置,使Nginx能将客户端HTTP请求动态路由到健康的服务实例。
SERVICE_TAG的服务识别为上游服务,结合Consul健康检查确保请求路由到可用服务适用于OpenLMIS v3微服务架构环境,作为API网关管理客户端与各微服务间的请求路由。特别适合服务动态扩展、实例频繁变更或需高可用性的部署场景,确保请求始终路由到健康可用的服务。
!服务发现概述
为正确配置路由,容器需通过Consul KV存储提供路径-服务映射。未包含在映射层级中的端点不会被API网关暴露。映射通过Consul KV存储中RESOURCES_PATH子目录下的键值对定义:
{param}替换,{param}匹配未明确定义的单级路径(不匹配子目录)<all>可保留路径下所有子目录和参数(匹配未被其他规则占用的路径)路径-服务映射:
users - referencedata users/{param} - referencedata users/manage - auth users/staff/validate - auth users/{param}/resetPassword - auth
对应路由结果:
/users → referencedata服务/users/manage → auth服务/users/123 → referencedata服务({param}匹配)/users/123/resetPassword → auth服务/users/staff → referencedata服务(未明确定义,由users/{param}匹配)/users/staff/validate → auth服务(明确定义)镜像包含两个核心配置文件:
nginx.conf:标准Nginx配置文件,可通过挂载自定义文件覆盖:
bashdocker run -v /本地路径/nginx.conf:/etc/nginx/nginx.conf openlmis/nginx
openlmis.conf:Consul Template生成的动态配置文件,被nginx.conf引用(覆盖nginx.conf时需确保包含此文件)/var/log/nginx,可通过NGINX_LOG_DIR环境变量自定义路径/var/log/consul-template,可通过CONSUL_TEMPLATE_LOG_DIR环境变量自定义路径日志包含标准访问信息及扩展性能指标(顺序如下):
| 变量名 | 描述 | 默认值 |
|---|---|---|
VIRTUAL_HOST | 服务器主机名 | 无(必须提供) |
CONSUL_HOST | Consul服务器地址 | consul |
CONSUL_PORT | Consul API端口 | 8500 |
RESOURCES_PATH | Consul KV中路径映射所在目录 | resources |
SERVICE_TAG | 标记可暴露服务的标签 | openlmis-service |
NGINX_LOG_DIR | Nginx日志目录 | /var/log/nginx |
CONSUL_TEMPLATE_LOG_DIR | Consul Template日志目录 | /var/log/consul-template |
CLIENT_MAX_BODY_SIZE | 客户端请求体最大大小 | 1m |
PROXY_CONNECT_TIMEOUT | 上游连接超时时间 | 60s |
PROXY_SEND_TIMEOUT | 上游请求发送超时时间 | 60s |
PROXY_READ_TIMEOUT | 上游响应读取超时时间 | 60s |
SEND_TIMEOUT | 客户端响应发送超时时间 | 60s |
NGINX_TIMEOUT | 统一设置上述四个超时时间的快捷变量 | - |
提供两个日志卷用于外部访问:
/var/log/nginx:Nginx日志存储路径/var/log/consul-template:Consul Template日志存储路径bash# 创建命名日志卷 docker volume create --name=nginx-log # 运行容器并挂载日志卷 docker run -d -v nginx-log:/var/log/nginx -e VIRTUAL_HOST=openlmis.example.com --name nginx openlmis/nginx # 验证日志卷(通过临时容器查看日志目录) docker run --rm -v nginx-log:/nginx-log openlmis/dev ls /nginx-log
上述示例中,命名卷nginx-log存储Nginx日志,可通过临时容器查看或集成到外部日志服务(如Scalyr)。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务