LINUX.ORG.RU

Как правильно настроить Кириллический домен в Nginx с WildCard ?

 


0

1

если поменять местами в директиве `server_name домен.рф www.домен.рф;` тогда не будет работать. если звездочку добавить тоже не работает так: www.домен.рф *.домен.рф

сейчас рабочая конфигурация такая (домен для примера, не существующий):

# cat /etc/nginx/sites-available/xn--80aaelc0ahlnavr8c.xn--p1ai
server {
    listen                  80;
    server_name             www.xn--80aaelc0ahlnavr8c.xn--p1ai .xn--80aaelc0ahlnavr8c.xn--p1ai;
 
    set 	            $main_host		'xn--80aaelc0ahlnavr8c.xn--p1ai';
 
    if ($host != $main_host) {
        rewrite             ^(.*)$              http://$main_host$1     permanent;
        break;
    }
 
    access_log              /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.access.log;
    error_log       	    /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.error.log;
 
    root                    /var/www/$main_host/www;
    index                   index.php index.html index.htm;
 
    location / {
        try_files           $uri    $uri/    /index.php?$args;
    }	
 
    location ~ \.php$ {
        include             /etc/nginx/conf.d/fastcgi_params.conf;
 
        fastcgi_param       SCRIPT_FILENAME  	/var/www/$main_host/www$fastcgi_script_name;
        fastcgi_param       DOCUMENT_ROOT       /var/www/$main_host/www;
 
        fastcgi_param       PHP_ADMIN_VALUE     upload_tmp_dir=/var/www/$main_host/tmp/upload;
        fastcgi_param       PHP_ADMIN_VALUE     session.save_path=/var/www/$main_host/tmp/sessions;
    }
 
    location ~ /\. {
	deny                all;
	access_log          off;
	log_not_found       off;
    }
}

что и как поменять в конфиге домена nginx, чтобы работал вайлдкард на idn-домене?


Ответ на: комментарий от Oxana

мне надо, чтобы все поддомены вели на основной домен сайт.рф если я добавляю звездочку в настройке хоста, то не только поддомены не обрабатываются, но и не работает основной домен! то есть так работает:

server_name             www.xn--80aaelc0ahlnavr8c.xn--p1ai .xn--80aaelc0ahlnavr8c.xn--p1ai;
 

так не работает:

server_name             www.xn--80aaelc0ahlnavr8c.xn--p1ai *.xn--80aaelc0ahlnavr8c.xn--p1ai;
 

так тоже не работает:

server_name             *.xn--80aaelc0ahlnavr8c.xn--p1ai www.xn--80aaelc0ahlnavr8c.xn--p1ai;
 
tlito ()
Ответ на: комментарий от tlito

Обычно делают так:

server {
    server_name *.xn--80aaelc0ahlnavr8c.xn--p1ai;
    return 301 http://xn--80aaelc0ahlnavr8c.xn--p1ai$request_uri;
}

server {
    server_name xn--80aaelc0ahlnavr8c.xn--p1ai;
# ...
}

Что в логах ошибок с Вашей конфигурацией? Для nginx что IDN, что не IDN — все едино.

Oxana ()
Ответ на: комментарий от Oxana

я сделал такую конфигурацию

/etc/nginx/sites-available# cat xn--80aaelc0ahlnavr8c.xn--p1ai
server {
    listen                  80;
    server_name             *.xn--80aaelc0ahlnavr8c.xn--p1ai;
    return 301 http://xn--80aaelc0ahlnavr8c.xn--p1ai$request_uri;
 
    set 	            $main_host		'xn--80aaelc0ahlnavr8c.xn--p1ai';
 
    if ($host != $main_host) {
        rewrite             ^(.*)$              http://$main_host$1     permanent;
        break;
    }
 
    access_log              /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.access.log;
    error_log       	    /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.error.log;
 
    root                    /var/www/$main_host/www;
    index                   index.php index.html index.htm;
 
    location / {
        try_files           $uri    $uri/    /index.php?$args;
    }	
 
    location ~ \.php$ {
        include             /etc/nginx/conf.d/fastcgi_params.conf;
 
        fastcgi_param       SCRIPT_FILENAME  	/var/www/$main_host/www$fastcgi_script_name;
        fastcgi_param       DOCUMENT_ROOT       /var/www/$main_host/www;
 
        fastcgi_param       PHP_ADMIN_VALUE     upload_tmp_dir=/var/www/$main_host/tmp/upload;
        fastcgi_param       PHP_ADMIN_VALUE     session.save_path=/var/www/$main_host/tmp/sessions;
    }
 
    location ~ /\. {
	deny                all;
	access_log          off;
	log_not_found       off;
    }
}

не работает. открывает вместо этого сайта дефолтный сайт: сообщение Welcome to nginx. в логах этого сайта - ничего. а в логах дефолтного сайта

55.55.55.88 - - [20/Nov/2015:15:02:26 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
55.55.55.88 - - [20/Nov/2015:15:04:06 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
55.55.55.88 - - [20/Nov/2015:15:04:08 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
tlito ()
Ответ на: комментарий от Oxana

конечно сделан, ни на что не ругается. я уже настроил boost- модуль, который кэширует страницы и настроил хост искать статичные файлы и только потом обращаться к index.php если нет статики.. то есть такой уровень.

но вайлкарды идн доменов мне до сих пор не дались.

tlito ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.