配置 Nginx SSL 和非 SSL

配置 Nginx SSL 和非 SSL

我正在尝试在当前的 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;
  }
}

相关内容