node.js - Custom LoadBalaner probing for https endpoints in Azure CloudServices -
about case: have node.js rest api deployed in azure cloudservice. node.js process hosted in iis using iisnode. because of default probing doesn't work might entire iis process down or when wrong in node.exe process , default probing not encounter issue. solution trying implement custom probing.
the problem: trying make azure loadbalancer use custom probe endpoint 1 of cloudservices discussed in this article. struggling fact seems custom loadbalancing probes available public input endpoints using http, tcp or udp.
in case have limitation should expose endpoints under https protocol. here cloudservice definition:
<servicedefinition xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" name="dec-api-server" xmlns="http://schemas.microsoft.com/servicehosting/2008/10/servicedefinition"> <webrole name="dec-api" vmsize="small"> <certificates> <certificate name="httpscertificate" storelocation="localmachine" storename="ca" /> </certificates> <endpoints> <inputendpoint name="httpsin" protocol="https" port="443" certificate="httpscertificate"/> <inputendpoint name="internalprobingendpoint" port="8091" protocol="http" loadbalancerprobe="customprobe"/> </endpoints> <sites> <site name="web"> <bindings> <binding name="httpsin" endpointname="httpsin" /> <binding name="internalprobingbinding" endpointname="internalprobingendpoint" /> </bindings> </site> </sites> </webrole> <loadbalancerprobes> <loadbalancerprobe name="customprobe" intervalinseconds="30" path="/probe" timeoutinseconds="60" port="8091" protocol="http"/> </loadbalancerprobes> </servicedefinition>
i have tried following things:
- i defined loadbalancerprobe="customprobe" attribute in httpsin endpoint , modified protocol , port in loadbalancerprobe element seems not possible deployment fails complain not valid xml.protocol=https not supported there.
- then thought can add second input endpoint using http used probing , disable network traffic other networks using endpoint acl , allow loadbalancer access it. works, or @ least can see in iis log loadbalancer calls /probe endpoint in case returns status 500 takes out of rotation endpoint not entire webrole or instance of cloudservice. calls through httpsin endpoint still hit machine probe endpoint returns 500.
the question: there way configure azure loadbalancer cloudservice use custom endpoint probing when https used?
is there workaround if not supported?
any or hint appreciated.
Comments
Post a Comment