У меня есть пример.com
и следующие варианты использования:
- только SSL
- www.будет перенаправлен на example.com (без www.)
- example.com изменит прокси на :3000
- fix1.example.com изменит прокси на :3001
- fix2.example.com изменит прокси на :3002
- ...
- *.example.com изменит прокси на :4000
- *.example.com/admin изменит прокси на :5000
- example.com/admin, fix1.example.com, fix2.example.com,... не будет иметь /admin и не должен реверсировать прокси на :5000
В моей текущей конфигурации у меня есть следующие файлы в моих сайтах-доступных/сайтах-включенных:
- exmaple.com
- fix1.example.com
- fix2.example.com
- ...
- wild.example.com
Каждый файл настраивает свою часть, так как другого файла нет. Но в итоге я получаю дублирующиеся или конфликтующие конфигурации, поэтому я думаю, что должен быть лучший подход в одном файле, который обрабатывает весь домен со всеми вариантами использования.
Только SSL и без www часть проста:
сервер {
если ($host = www.example.com) {
вернуть 301 https://$host$request_uri;
}
имя_сервера www.example.com;
вернуть 301 $scheme://example.com$request_uri;
}
сервер {
если ($host = example.com) {
вернуть 301 https://$host$request_uri;
}
слушать 80;
имя_сервера пример.com;
вернуть 301 http://$server_name$request_uri;
}
Но как мне настроить фиксированные поддомены и субдомен с подстановочными знаками вместе с путем /admin?
Это блок, который я использую для пример.com прокси:
сервер {
слушать 443 ssl http2;
имя_сервера пример.com;
место расположения / {
proxy_pass http://localhost:3000;
прокси_http_версия 1.1;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение «обновление»;
proxy_set_header Хост $host;
proxy_cache_bypass $http_upgrade;
}
ssl_сертификат #...
ssl_certificat_key #...
}