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

Nginx с http / https - Http все время перенаправлялся на https

У меня действительно странное поведение с моим сервером ubuntu 10.04 / nginx 1.2.3. В основном я сегодня утром поменял сертификаты SSL. И с тех пор он ведет себя странно во всех приложениях. Godaddy сообщает, что настройка HTTPS / SSL верна.

Когда я пытаюсь открыть страницу, она по-прежнему работает правильно, даже если я использую HTTPS. Но когда я пытаюсь использовать HTTP, nginx сообщает об ошибке:

400 Bad Request
The plain HTTP request was sent to HTTPS port

После нескольких часов поисков в Google я попробовал другую настройку (хотя изначально моя настройка работала правильно долгое время, я только что обновил сертификаты)

Я как бы нашел половину решения, добавив это в свою конфигурацию:

error_page 497 $ request_uri;

Действительно странно то, что когда я использую эту настройку:

server {
    listen 80;
    server_name john.johnrocks.eu;

    access_log /home/john/envs/john_prod/nginx_access.log;
    error_log /home/john/envs/john_prod/nginx_error.log;

    location / {
        uwsgi_pass unix:///home/john/envs/john_prod/john.sock;
        include uwsgi_params;
    }

    location  /media  {
        alias   /home/john/envs/john_prod/johntab/www;
    }

    location  /adminmedia  {
        alias   /home/john/envs/john_prod/johntab/www/adminmedia;
    }
}

У меня все еще такая же ошибка при использовании HTTP (хотя здесь ничего не настроено для HTTPS) ??

Я схожу с ума от этого!

**Обновить

Даже с такой конфигурацией:

server {
    listen       80;
    server_name  john.johnrocks.eu;

    access_log  /home/john/envs/john_prod/nginx.access.log;

    location / {
        root   /home/john/envs/john_prod/johntab/www;
        index  index.html index.htm;
    }
}

Я получаю ошибку 400 (простой HTTP-запрос был отправлен на порт HTTPS) на всем, что я пытаюсь загрузить.

Я не знаю об ошибке 400, но если у вас было 301 (постоянное) перенаправление в вашей предыдущей конфигурации, браузер, возможно, сохранил это перенаправление в кеше и не проверяет оригинал. Возможно, очистка кешей может помочь.

Итак, я выяснил, в чем проблема. Проблема заключается в том, как nginx загружает конфигурации vhosts. Если вы посмотрите nginx.conf, вы найдете эту строку

include /etc/nginx/sites-enabled/*;

Таким образом, это загружает все "vhosts" в главный nginx.conf в случайном порядке. Так случилось, что ошибка была где-то в другом месте, в другом vhost ... и это приводило к сбою всех vhosts в основном (nginx не обнаружил ошибки, это была не ошибка как таковая, а плохая конфигурация).

Поэтому я удалил все vhosts с поддержкой сайтов и вставил их один за другим, перезагружая nginx и каждый раз тестируя сайт, пока я не получу с ними все в порядке, а затем вуаля