2015-04-04 2 views
1

Я выполнил инструкции по адресу https://stackoverflow.com/a/11733363/2532070 для перенаправления www на не-www. Я пытаюсь перенаправлять следующие форматы:Nginx www. к не-www. перенаправление не работает

http://example.com 
http://www.example.com 
https://www.example.com 

все:

https://example.com 

http://example.com перенаправляет к https. Однако два других, с www., не являются. Вот мой nginx.conf:

upstream app_server { 
    server 127.0.0.1:9000 fail_timeout=0; 
} 
# 
# Redirect all www to non-www 
# 
server { 
    server_name   www.example.com; 
    ssl_certificate  /src/bin/ssl/ssl-bundle.crt; 
    ssl_certificate_key /etc/ssl/private/STAR_example_com.key; 
    listen    *:80; 
    listen    *:443 ssl spdy; 
    listen    [::]:80 ipv6only=on; 
    listen    [::]:443 ssl spdy ipv6only=on; 

    return 301 https://example.com$request_uri; 
} 

# 
# Redirect all non-encrypted to encrypted 
# 
server { 
    server_name   example.com; 
    listen    *:80; 
    listen    [::]:80; 

    return 301 https://example.com$request_uri; 
} 

# 
# There we go! 
# 
server { 
    server_name   example.com; 
    ssl_certificate  /src/bin/ssl/ssl-bundle.crt; 
    ssl_certificate_key /etc/ssl/private/STAR_example_com.key; 
    listen    *:443 ssl spdy; 
    listen    [::]:443 ssl spdy; 

    # rest goes here... 

    root /usr/share/nginx/html; 
    index base.html index.html index.htm; 

    client_max_body_size 4G; 

    keepalive_timeout 5; 

    # Your Django project's media files - amend as required 
    location /media { 
     alias /src/media; 
    expires 1y; 
    add_header Cache-Control "public"; 
    } 

    # your Django project's static files - amend as required 
    location /static { 
     alias /src/static; 
    expires 1y; 
    add_header Cache-Control "public"; 
    } 

    location/{ 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://app_server; 
    } 
} 

Я ничего в файле журнала Nginx, чтобы указать ошибку, не видя. Где-то искать ошибку, когда я пытаюсь получить доступ к версии www.? Благодаря!

+0

У вас есть запись DNS для www.example.com? –

ответ

3

Скорее всего, у вас проблемы с кешированием браузера. Попробуйте очистить кеш, например. установите флажок «Отключить кеш» на вкладке «Инструменты разработчика» Chrome или в настройках инструментов разработчика Firefox. Это должно исправить это.

+0

благодарит за вашу помощь! Пробовал это и не помогал. Я получаю ошибку «Ошибка загрузки ресурса: net :: ERR_NAME_NOT_RESOLVED» (возможно, эта ошибка браузера помогает?). – YPCrumble

+0

Это указывает на проблему DNS, дважды проверьте, что у вас нет опечатки в именах доменов в вашей конфигурации nginx. – Fleshgrinder

+0

Спасибо - это означает, что мне нужно указать www.example.com на мой IP-адрес, например, у меня есть example.com? (Может быть, это ошибка начинающего?) – YPCrumble