我应该如何配置dockercloud / haproxy来代理https?

我应该如何配置dockercloud / haproxy来代理https?

我正在使用dockercloud/haproxy图像代理并平衡传入的 http 请求。docker 容器应监听端口 443 和 80 (-> 443)。

我正在使用 Stackfiles,并且一直使用 重定向/api路径VIRTUAL_HOST=*/api/*

添加 SSL 支持后,我不确定是否必须替换DEFAULT_SSL_CERT参数上的换行符。对于 http -> https 重定向,我使用参数FORCE_SSL

我应该使用什么配置进行转发?我使用这个配置是正确的吗?

这是我当前的堆栈文件:

api:
  autoredeploy: true
  environment:
    - "VIRTUAL_HOST=*/api/*"
    - "VIRTUAL_HOST_WEIGHT=1"
    - "FORCE_SSL=yes"
  image: "anaibol/webapp-api:latest"
web:
  autoredeploy: true
  environment:
    - "VIRTUAL_HOST=*"
    - "VIRTUAL_HOST_WEIGHT=0"
    - "FORCE_SSL=yes"
  image: "anaibol/webapp:latest"
  links:
    - api
lb:
  image: "dockercloud/haproxy:latest"
  links:
    - api
    - web
  ports:
    - "443:443"
    - "80:80"
  roles:
    - global
  environment:
    - "DEFAULT_SSL_CERT=-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"

答案1

对我有用的是VIRTUAL_HOST这样设置:

VIRTUAL_HOST=*/api*, https://*/api*

换行也是DEFAULT_SSL_CERT可以的。

相关内容