NGINX reverse proxy config file übersichtlicher gestalten

kamanu

Lt. Commander
Registriert
März 2012
Beiträge
1.658
Hallo,

ich nutze zuhause für diverse Dienste ein Reverse Proxy über NGINX.
Nun sammelt sich da mit der Zeit einiges an und ich vermute man kann das auch ein wenig übersichtlicher gestalten. Vor allem der ganze SSL-Kram ist ja bei jeder Subdomain gleich. Kann man das auch einfach allgemein irgendwo hinterlegen?

NGINX:
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
   listen 80;
   server_name *.meinedomain.de;
   return 301 https://$host$request_uri;
}

# SSL configuration App1
server {
   listen 443 ssl http2;
   #who can access
   allow  192.168.1.0/24;
   deny   all;

   server_name app1.meinedomain.de;
   ssl_certificate      /etc/letsencrypt/live/meinedomain.de/fullchain.pem;
   ssl_certificate_key  /etc/letsencrypt/live/meinedomain.de/privkey.pem;

   # Improve HTTPS performance with session resumption
   ssl_session_cache shared:SSL:10m;
   ssl_session_timeout 5m;

   # Enable server-side protection against BEAST attacks
   ssl_prefer_server_ciphers on;
   #ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
   ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;


   # Disable SSLv3
   ssl_protocols TLSv1.2 TLSv1.3;

   # Diffie-Hellman parameter for DHE ciphersuites
   # $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
   ssl_dhparam /etc/ssl/certs/dhparams.pem;

   # Enable HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
   add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";

   # Enable OCSP stapling (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_trusted_certificate /etc/letsencrypt/live/meinedomain.de/fullchain.pem;
   resolver 8.8.8.8 8.8.4.4 valid=300s;
   resolver_timeout 5s;

   # Required for LE certificate enrollment using certbot
   location / {
        proxy_pass http://192.168.1.42;
   }
}


# SSL configuration App2
server {
   listen 443 ssl http2;
   #who can access
   allow  192.168.1.0/24;
   deny   all;

   server_name app2.meinedomain.de;
   ssl_certificate      /etc/letsencrypt/live/meinedomain.de/fullchain.pem;
   ssl_certificate_key  /etc/letsencrypt/live/meinedomain.de/privkey.pem;

   # Improve HTTPS performance with session resumption
   ssl_session_cache shared:SSL:10m;
   ssl_session_timeout 5m;

   # Enable server-side protection against BEAST attacks
   ssl_prefer_server_ciphers on;
   #ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
   ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;


   # Disable SSLv3
   ssl_protocols TLSv1.2 TLSv1.3;

   # Diffie-Hellman parameter for DHE ciphersuites
   # $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
   ssl_dhparam /etc/ssl/certs/dhparams.pem;

   # Enable HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
   add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";

   # Enable OCSP stapling (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_trusted_certificate /etc/letsencrypt/live/meinedomain.de/fullchain.pem;
   resolver 8.8.8.8 8.8.4.4 valid=300s;
   resolver_timeout 5s;

   location / {
        proxy_pass http://192.168.1.1;
   }
}

Geht das?
 
  • Gefällt mir
Reaktionen: e_Lap
@konkretor Danke, guck ich mir heute abend mal genauer an :)

Edit: Perfekt. Hat wunderbar geklappt. Wesentlich übersichtlicher jetzt. Überlege gerade ob ich noch alles modularisiere und für jede Subdomain nen eigenes Conf-File bastel und es damit noch ein wenig übersichtlicher mache.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: konkretor
Zurück
Oben