StatusCake delivers accurate global website monitoring for tens of thousands of customers.
With the free plan you can use public reports to have a quick look on the health of your services.
If you want to display your public report under your own subdomain you can use a built in feature from statuscake and point the CNAME-Record of your subdomain to the report. In this case you can have problems with caching especially when you use cloudflare.
But there is no need to use this “dns-magic” you can easily proxy the report by your self und can put it under any uri you want.
There is a little pitfall because a public report uri looks like this “https://uptime.statuscake.com/?TestID=ZOasdEMaz3” and if you try to pass assets to this host you wont get the correct result. So you need two locations for an nginx definition.
location ~ /.+ { proxy_http_version 1.1; proxy_set_header Host uptime.statuscake.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass https://uptime.statuscake.com; } location / { proxy_http_version 1.1; proxy_set_header Host uptime.statuscake.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass https://uptime.statuscake.com/?TestID=ZOasdEMaz3; }
If you use chef-solo recipes for you nginx configuration you can create a template like this:
<% require 'uri' uri = URI(@public_report_uri) proxy_host = uri.host proxy_scheme = uri.scheme %> server { [...] location ~ /.+ { proxy_http_version 1.1; proxy_set_header Host <%= proxy_host %>; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass <%= proxy_scheme %>://<%= proxy_host %>; } location / { proxy_http_version 1.1; proxy_set_header Host <%= proxy_host %>; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass <%= @public_report_uri %>; } }