Dynamiczny revers proxy dla nazwy subdomeny

Dynamiczny revers proxy dla nazwy subdomeny

Szybki wpis, raczej jako pamiętnik.

Zamiast tworzyć dużą ilość vhostów w nginx, a tak bym musiał zrobić – można skorzystać z regxp.

server {
        listen 80;
        server_name "~^demo(?P\d{2})\.demolab\.domena.pl$";
        return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;

    server_name "~^demo(?P\d{2})\.demolab\.domena.pl$";

    # ... bla bla bla reszta konfiguracji

    location / {
        proxy_set_header        Host $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 https://10.10.6.$ip:443;
        include /etc/nginx/ip.conf;
        deny all;
    }
}

Jak widać na przykładzie każda sudomena demoXX.demolab.domena.pl gdzie XX to liczba ładuje http z adresu IP 10.10.6.XX. XX może być 2 cyfrowy. Oczywiście mamy tu przekierowanie na https, a sama konfiguracja też nie jest kompletna :)