我正在尝试在当前的 Nginx 配置上启用 SSL,效果很好。但是我想知道是否可以与 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
}
答案1
您可以有多个听每个服务器指令的指令。
http {
server {
listen 80;
listen 443 default ssl;
<config stuff including ssl>
}
}
答案2
我对 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;
}
}