SSL Node.js Подвески с Haproxy

Когда я пишу брелок Node.js, требующий SSL, как мне писать веб-хаки Haproxy?

Я использую следующие хуки на основе примера кода :

крючки / присоединение к веб-сайту:

#!/bin/bash

relation-set "hostname=$(unit-get private-address)"
relation-set "port=80"

# Set an optional service name, allowing more config-based
# customization
relation-set "service_name=mindproject"

изменение крючков / отношение к веб-сайту:

#!/bin/bash

host=$(unit-get private-address)
port=80

relation-set "services={ service_name: mindproject,service_options: [mode http, balance leastconn],crts: [DEFAULT], servers: [[mindproject, $host, $port, option httpchk GET / HTTP/1.0]]}"

После juju add-relation mindproject:website mind-proxy:reverseproxy заклинание Haproxy не работает reverseproxy-relation-changed крюк с этим журналом:

2015-03-24 20:17:31 INFO reverseproxy-relation-changed ^MReading package lists... 0%^M^MReading package lists... 0%^M^MReading package lists... 1%^M^MReading package lists... 11%^M^MReading package lists.$
2015-03-24 20:17:31 INFO reverseproxy-relation-changed ^MBuilding dependency tree... 0%^M^MBuilding dependency tree... 0%^M^MBuilding dependency tree... 50%^M^MBuilding dependency tree... 50%^M^MBuilding $
2015-03-24 20:17:31 INFO reverseproxy-relation-changed ^MReading state information... 0%^M^MReading state information... 5%^M^MReading state information... Done
2015-03-24 20:17:32 INFO reverseproxy-relation-changed Traceback (most recent call last):
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 1271, in <module>
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     main(hook_name)
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 1246, in main
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     reverseproxy_interface("changed")
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 946, in reverseproxy_interface
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     config_changed()
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 903, in config_changed
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     if not create_services():
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 577, in create_services
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     relation_info['services'])
2015-03-24 20:17:32 INFO reverseproxy-relation-changed   File "/var/lib/juju/agents/unit-mind-proxy-0/charm/hooks/reverseproxy-relation-changed", line 473, in parse_services_yaml
2015-03-24 20:17:32 INFO reverseproxy-relation-changed     service_name = service["service_name"]
2015-03-24 20:17:32 INFO reverseproxy-relation-changed TypeError: string indices must be integers, not str
2015-03-24 20:17:32 ERROR juju.worker.uniter uniter.go:486 hook failed: exit status 1

failed-hook

2
задан 25 March 2015 в 01:26

1 ответ

Я не думаю, что документация haproxy очарования корректна. Я записал немного сценарий для моделирования yaml, поглощенного haproxy. Ваш рычаг отношения веб-сайта должен быть похожим на это:

#!/bin/bash
set -eux

host=$(unit-get private-address)
port=80

relation-set "services=[{'server_options': ['maxconn 100'], 'service_name': 'demo', 'servers': [['mindproject', '${host}', '${port}', '']], 'service_options': ['mode http', 'balance leastconn', 'option httpchk GET / HTTP/1.0']}]"

основная проблема с кодом, который Вы отправили, состоит в том, что Вы передаете сервисы как dict, когда он ожидает массив. Вдобавок ко всему, раздел серверов требует четырех параметров, но последний параметр, который документируется в readme как 'опция httpchk, ДОБИРАЕТСЯ / HTTP/1.0' должен быть в service_options строке файла конфигурации.

Hope это помогает!

2
ответ дан 25 March 2015 в 01:26

Другие вопросы по тегам:

Похожие вопросы: