btw, o nome do servidor catch_all passa por server_name _;
, não é necessário regex
da sua descrição do erro parece que o servidor errado {} - é usado, mas apenas em http, não em https.
você tem um IP separado para cada host SSL ou não? se não, o seu nginx está ciente do SNI? você checaria com 'nginx -V' e deveria dar uma linha como essa:
$ ~/nginx -V
nginx version: nginx/1.4.1
built by gcc 4.4.5 (Debian 4.4.5-8)
TLS SNI support enabled
....
se o seu nginx é sensível ao SNI, então o seu navegador / SO pode ser o problema; Windows XP não é capaz de usar SNI - ciente. O SNI é um recurso do openssl, você precisa ter pelo menos 0.9.8f à mão
se o SNI for um problema para você: use um IP separado para cada host SSL.
mais dicas de depuração:
- use um access_log separado para cada servidor, por exemplo,
access_log /var/log/nginx/special_host.access.log;
para seu host sepcial - faça uma solicitação e verifique em qual servidor você está realmente operando; garantir para http e https você está no servidor certo
- se isso for correto depurar dentro do server_part