Конфигурирование Nginx SSL вместе с не-ssl

Я пытаюсь включить SSL в моей текущей конфигурации Nginx, которая работает нормально. Однако мне интересно, возможно ли сделать это вместе с HTTP, так что мне не нужен другой раздел server{}, который будет просто репликацией раздела 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
}

2 ответа

Решение

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

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;
  }
}
Другие вопросы по тегам