Dynami c proxy_pass в nginx с такими портами, как gitpod - PullRequest
1 голос
/ 03 августа 2020

Как установить динамический c proxy_pass в nginx как gitpod.com:

У меня уже есть подстановочный сертификат

Например, в Gitpod у вас есть VM и если вы запускаете порт, например 8081, ваш URL-адрес: https://8081-some-uuid.ws-us02.gitpod.io/

Следуя этому порядку идей, я хотел бы настроить что-то вроде

8082.example.com -> http://localhost:8082
8081.example.com -> http://localhost:8081
8080.example.com -> http://localhost:8080

site-enabled /example-com.config

server {
    server_name *.example.com;
    listen 80;

    location / {
        // how config this??
        proxy_pass http://localhost:(¿dynamic port?);

        proxy_set_header Connection 'upgrade';
        proxy_set_header Upgrade $http_upgrade;
        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 $http_x_forwarded_proto;
    }
}

1 Ответ

1 голос
/ 03 августа 2020

Вместо использования подстановочного имени с server_name вы можете использовать регулярное выражение для захвата части запроса поддомена. Подробнее см. в этом документе .

Например:

server_name "~^(?<subdomain>[0-9]{4})\.example\.com$";
proxy_pass http://localhost:$subdomain;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...