配置示例

完整配置

server {
    listen              443 ssl http2;
    server_name         www.example.com;

    ssl_certificate     www.example.com.chained.crt;
    ssl_certificate_key www.example.com.key;

    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_session_tickets on;
    ssl_stapling        on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/nginx/trusted.crt;
    resolver            8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout    5s;
}

server {
    listen      80;
    server_name www.example.com example.com;
    return 301 https://$host$request_uri;
}

完整配置说明

  • listen 443 ssl http2:监听 443 端口,启用 SSL 和 HTTP/2
  • ssl_certificate:SSL 证书文件
  • ssl_certificate_key:SSL 私钥文件
  • ssl_session_cache:SSL 会话缓存
  • ssl_session_timeout:SSL 会话超时
  • ssl_session_tickets:SSL 会话票据
  • ssl_stapling:OCSP Stapling
  • ssl_stapling_verify:OCSP Stapling 验证
  • ssl_trusted_certificate:信任的证书
  • resolver:DNS 解析器
  • resolver_timeout:DNS 解析超时

完整配置原理listen 443 ssl http2 指令用于监听 443 端口,启用 SSL 和 HTTP/2。ssl_certificate 指令用于指定 SSL 证书文件,ssl_certificate_key 指令用于指定 SSL 私钥文件。ssl_session_cache 指令用于设置 SSL 会话缓存,ssl_session_timeout 指令用于设置 SSL 会话超时。ssl_session_tickets 指令用于启用 SSL 会话票据。ssl_stapling 指令用于启用 OCSP Stapling。ssl_stapling_verify 指令用于启用 OCSP Stapling 验证。ssl_trusted_certificate 指令用于设置受信任的证书文件。resolver 指令用于设置 DNS 解析器,resolver_timeout 指令用于设置 DNS 解析超时。

配置说明

指令说明示例
listen 443 ssl http2监听 443 端口,启用 SSL 和 HTTP/2listen 443 ssl http2
ssl_certificateSSL 证书文件ssl_certificate www.example.com.chained.crt
ssl_certificate_keySSL 私钥文件ssl_certificate_key www.example.com.key
ssl_session_cacheSSL 会话缓存ssl_session_cache shared:SSL:10m
ssl_session_timeoutSSL 会话超时ssl_session_timeout 10m
ssl_session_ticketsSSL 会话票据ssl_session_tickets on
ssl_staplingOCSP Staplingssl_stapling on
ssl_stapling_verifyOCSP Stapling 验证ssl_stapling_verify on
ssl_trusted_certificate信任的证书ssl_trusted_certificate /etc/nginx/trusted.crt
resolverDNS 解析器resolver 8.8.8.8 8.8.4.4 valid=300s
resolver_timeoutDNS 解析超时resolver_timeout 5s

HTTP/2 配置

server {
    listen              443 ssl http2;
    server_name         www.example.com;

    ssl_certificate     www.example.com.chained.crt;
    ssl_certificate_key www.example.com.key;

    http2_push_preload on;
}

HTTP/2 配置说明

  • listen 443 ssl http2:监听 443 端口,启用 SSL 和 HTTP/2
  • http2_push_preload on:启用 HTTP/2 服务器推送

HTTP/2 配置原理listen 443 ssl http2 指令用于监听 443 端口,启用 SSL 和 HTTP/2。http2_push_preload 指令用于启用 HTTP/2 服务器推送。