Итак, я пытаюсь настроить nginx default.conf, и у меня возникают проблемы с использованием переменных.Я хочу захватить поддомен как переменную $subdomain
и использовать его несколько раз в default.conf
.
Вот мой конфиг:
server {
listen 80;
server_name ~^(?<subdomain>.+)\.example\.com$;
# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;
location / {
rewrite ^/$ /$subdomain/index.html break;
proxy_set_header Host $http_host;
proxy_pass http://minio-server:9000/$subdomain/;
#health_check uri=/minio/health/ready;
}
}
К сожалению, наличие переменной $subdomain
в блоке местоположения каждый раз приводит к сбою nginx.Если бы я заменил $subdomain
в блоке местоположения на tester
в качестве статического значения, тогда все работает.
Как правильно использовать переменную $subdomain
здесь ???
Этот вопрос является своего рода продолжением этого вопроса: k8s-ingress-minio-and-a-статический сайт .В этом выпуске я пытался использовать Ingress для обращения прокси-сервера к мини-корзине, но безрезультатно.Сейчас я просто пытаюсь пройти через Nginx напрямую, но мои переменные не работают.
Обновления
Так что, похоже, proxy_pass не разрешит хост правильно, если в URL есть переменная.
Пробовал две вещи:
установить преобразователь следующим образом: resolver default.cluster.local
.Я попробовал несколько комбо для fqdn kube-dns, но безрезультатно и продолжал получать minio-server
не может быть найдено.
Просто не используйте переменные, которые Ричард Смит упоминает ниже.Вместо этого переписать все, затем прокси пройти.Однако я не понимаю, как это будет работать, и я получаю очень бесполезные ошибки, например: 10.244.1.1 - - [07/Feb/2019:18:13:53 +0000] "GET / HTTP/1.1" 405 291 "-" "kube-probe/1.10" "-"