Конфигурирование 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;
}
}