Назад | Перейти на главную страницу

nginx: обслуживает как domain.com, так и www.domain.com

В настоящее время у меня есть сервер nginx, к которому можно получить доступ, набрав domain.com как по HTTP, так и по HTTPS. Однако, когда я пытаюсь подключиться, набрав www.domain.com вместо этого, кажется, что соединение зависнет, и Firefox сообщает: «Соединение с сервером было сброшено во время загрузки страницы ..»

Вот моя текущая конфигурация server_name:

server_name localhost www.example.com example.com;

Документация nginx, кажется, предполагает, что это должно работать, что я делаю не так?

это

server {
    listen  80;
    server_name  example.com;
    return 301 $scheme://www.example.com$request_uri;    
    }

перенаправит example.com на www.example.com, и это

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

    location / {
        root   /var/www/example.com;
        index  index.html index.htm;
        }
    }

будет обслуживать www.example.com.

Вы можете сделать то же самое для https, но вряд ли кто-то будет старательно вводить https: // и неканонический адрес, поэтому

server {
    listen  443;
    server_name www.example.com;


    ssl  on;
    ssl_certificate  /etc/ssl/private/www.example.com.crt;
    ssl_certificate_key /etc/ssl/private/www.example.com.key;

    ssl_session_timeout  10m;
    ssl_session_cache shared:SSL:10m;

    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers HIGH:!ADH:!MD5;
    ssl_prefer_server_ciphers   on;


    location / {
        root   /var/www/example.com;
        index  index.html index.htm;
        }
    }

должно хватить.