I'm about to embark on creating 12000 vhosts

Richard Paul Richard at primarysite.net
Tue Feb 12 09:56:35 UTC 2019


Hi Lucas,

Well that looks great. I've not looked at HAproxy too much, as I've not used it before other than during a switch over just prior to Christmas last year where rinetd couldn't cope with the incoming traffic load and we had to cobble together a quick HAProxy layer 4 configuration to redirect traffic from AWS to GCP.

I'll start digging into this a bit more as this looks like a better solution and I can maybe just use LE's webroot plugin without having to generate and sync Nginx configuration as well as the certs over to the TLS terminator instances.

Kind regards,
Richard

On Tue, 2019-02-12 at 09:32 +0000, Lucas Rolff wrote:
In haproxy, you simply specify a path where you have all your certificates.

frontend https_frontend
    bind *:443 ssl crt /etc/haproxy/certs/default-cert.pem crt /etc/haproxy/certs alpn h2,http/1.1

This way, haproxy will read all certs, and when stuff comes in, it uses the host header to determine which certificate it should serve.

There was a thread on the haproxy mailing list not long ago, with managing more than 100k certificates per haproxy instance, and they’re working on further optimizations with those kinds of deployments (if it’s not already done.. haven’t checked to be honest).

Best Regards,

From: nginx <nginx-bounces at nginx.org> on behalf of Richard Paul <Richard at primarysite.net>
Reply-To: "nginx at nginx.org" <nginx at nginx.org>
Date: Tuesday, 12 February 2019 at 10.04
To: "nginx at nginx.org" <nginx at nginx.org>
Subject: Re: I'm about to embark on creating 12000 vhosts

Hi Jeff

That's interesting, how do you manage the progamming to load the right certificate for the right domain coming in as the server name? We need to load the right certificate for the incoming domain and the 12000 figure is the number of unique vanity domains without the www. subdomains.

We're planning to follow the same path as you though, we're essentially putting these Nginx TLS terminators (fronted by GCP load balancers) in front of our existing Varnish caching and Nginx backend infrastructure which currently only listen on port 80.

I couldn't work out what the limits are at LE as it's not clear with regards to adding new unique domains limits. I'm going to have to ask in the forums at some point so that I can work out what our daily batches are going to be.

Kind regards,
Richard

On Mon, 2019-02-11 at 14:33 -0500, Jeff Dyke wrote:
I use haproxy in a similar way as stated by Rainer, rather than having hundreds and hundreds of config files (yes there are other ways), i have 1 for haproxy and 2(on multiple machines defined in HAProxy). One for my main domain that listens to an "real" server_name and another that listens to `server_name _;`  All of the nginx servers simply listen on 80 and 81 to handle non H2 clients and the application does the correct thing with the domain.  Which is where YMMV as all applications differ.

I found this much simpler and easier to maintain over time.  I got around the LE limits by a staggered migration, so i was only requesting what was in the limit each day, then have a custom script that calls LE (which is also on the same machine as HAProxy) when certs are about 10 days out, so the staggering stays within the limits.  When i was using custom configuration, i was build them via python using a yaml file and nginx would effectively be a jinja2 template.  But even that became onerous.  When going down the nginx path ensure you pay attention to the variables that control domain hash sizes. http://nginx.org/en/docs/hash.html

HTH, good luck!
Jeff

On Mon, Feb 11, 2019 at 1:58 PM Rainer Duffner <rainer at ultra-secure.de<mailto:rainer at ultra-secure.de>> wrote:



Am 11.02.2019 um 16:16 schrieb rick_pri <nginx-forum at forum.nginx.org<mailto:nginx-forum at forum.nginx.org>>:

However, our customers, with about 12000 domain names at present have


Let’s Encrypt rate limits will likely make these very difficult to obtain and also to renew.

If you own the DNS, maybe using Wildcard DNS entries is more practical.

Then, HAProxy allows to just drop all the certificates in a directory and let itself figure out the domain-names it has to answer.
At least, that’s what my co-worker told me.

Also, there’s the fabio LB with similar goal-posts.




_______________________________________________
nginx mailing list
nginx at nginx.org<mailto:nginx at nginx.org>
http://mailman.nginx.org/mailman/listinfo/nginx

_______________________________________________

nginx mailing list
<mailto:nginx at nginx.org>
<mailto:nginx at nginx.org>

nginx at nginx.org



<http://mailman.nginx.org/mailman/listinfo/nginx>
<http://mailman.nginx.org/mailman/listinfo/nginx>

http://mailman.nginx.org/mailman/listinfo/nginx


_______________________________________________

nginx mailing list

<mailto:nginx at nginx.org>

nginx at nginx.org


<http://mailman.nginx.org/mailman/listinfo/nginx>

http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20190212/46562502/attachment-0001.html>


More information about the nginx mailing list