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

Настройка Nginx SSL вместе с протоколом non-ssl

Я пытаюсь включить SSL в моей текущей конфигурации Nginx, которая работает нормально. Однако мне интересно, можно ли сделать это вместе с HTTP, чтобы мне не нужен был другой раздел сервера {}, который был бы просто копией раздела http.

Я думал, что следующее сработает, однако при доступе к http: // получаю следующее.

400 Bad Request

The plain HTTP request was sent to HTTPS port

Конфигурация Nginx:

  ssl_certificate      /etc/nginx/ssl/domains.pem;
  ssl_certificate_key  /etc/nginx/ssl/server.key;

server {
        listen 80;
        listen 443;
    //other configuration
}

Вы можете иметь несколько Слушать директив на директиву сервера.

http {
 server {
  listen 80;
  listen 443 default ssl;

  <config stuff including ssl>
 }
}

Я делаю нечто подобное с include, так что строки конфигурации, связанные с ssl, применяются только к одному из слушателей.

http {
 server {
  listen 443;
  ssl on;
  ssl_certificate     /etc/nginx/ssl_keys/server.crt ;
  ssl_certificate_key /etc/nginx/ssl_keys/server.key ;
  include otherstuff.conf;
  }

 server {
  listen 80;
  include otherstuff.conf;
  }
}