Option 1.
Verwenden Sie drei server
Blöcke (wie in Ihrer Frage erwähnt), lagern Sie den duplizierten Inhalt jedoch in eine separate Datei und verwenden Sie eine include
Direktive, um ihn in jeden der relevanten server
Blöcke zu ziehen . Einzelheiten finden Sie in diesem Dokument .
Option 2.
Das default_server
braucht keine server_name
Aussage. Sie sollten default_server
jedoch den anderen server
Block austauschen, so dass der 1. server
Block der spezifischere wird.
Zum Beispiel:
server{ listen 80; listen [::]:80; server_name hostname.external_domain; return 301 https://$host$request_uri; } server { listen 80 default_server; listen 443 ssl default_server; listen [::]:80 default_server; listen [::]:443 ssl default_server; ... }
Der zweite server_block
muss nicht mit einem übereinstimmen, server_name
da er mit allem übereinstimmt, für den der erste server
Block nicht explizit passt.