У меня есть nginx 1.14.0 на Ubuntu 18.04.3. У меня возникли некоторые проблемы с доменом punycode, он работает только с поддоменами, например, www.xn--bratwrste-u9a.de, но не только с доменом, например, xn--bratwrste-u9a.de. Другие домены, например example.com, работают как положено.
Моя конфигурация сервера по умолчанию:
server {
listen 1.2.3.4:443 ssl http2 default_server;
listen 5.6.7.8:443 ssl http2 default_server;
ssl_certificate /ssl/sslcert.pem;
ssl_certificate_key /ssl/privkey.pem;
server_name _;
root /var/www/foo;
index index.html index.php;
}
А вот конфигурация виртуального сервера:
server {
listen 5.6.7.8:443 ssl http2;
server_name .xn--bratwrste-u9a.de;
ssl_certificate /ssl/sslcert.pem;
ssl_certificate_key /ssl/privkey.pem;
root /var/www/bar;
index index.html index.php;
}
Журнал выглядит хорошо:
"GET /foo.bar HTTP/2.0" 200 247 "https://xn--bratwrste-u9a.de/"
Также нет ошибки в файле error.log
Документация nginx не дала мне ответа на мой вопрос, а также индивидуальное перечисление имени сервера не делает различий.
Спасибо за любые предложения.
РЕДАКТИРОВАТЬ:
Обходной путь: Добавить правило перезаписи на сервер по умолчанию:
if ($host = xn--bratwrste-u9a.de) {
rewrite (.*) https://www.xn--bratwrste-u9a.de$1;
}
Странно, что это работает, но имя_сервера не ...