全站配置nginx实现https,http2及301跳转

2018.12.10 23:52 阅读 664

经过了一晚上的折腾,终于把全站(包括client端,admin端,server端,七牛云静态图片端)实现了https,http2以及http301重定向跳转https。时间有些晚了,明天来补详细配置过程。

配置

直接贴上代码

# kkfor.com
# http 301跳转https,并且带www跳转到不带www
server {
    listen       80;
    server_name  kkfor.com www.kkfor.com;
    return 301 https://kkfor.com$request_uri;
}
# https带www跳转不带www https
server {
    listen 443 ssl;
    server_name www.kkfor.com;
    return 301 https://kkfor.com$request_uri;
}
# https监听443端口开启http2
server {
    listen       443 ssl http2;
    server_name kkfor.com;
    # 证书文件
    ssl_certificate     cert/1_kkfor.com_bundle.crt;
    # 私钥文件
    ssl_certificate_key cert/2_kkfor.com.key;

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass          http://127.0.0.1:3000;
        index index.html;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

经过以上配置将所有的权重集中到了https://kkfor.com

总结一下遇到的一些问题

  • http下的跳转及www跳转不带www

首先http监听的都是80端口,http跳转只需要在80端口下配置就可以。
通过代码中的第一个server实现了http://kkfor.com跳转到https://kkfor.com以及http://www.kkfor.com跳转到https://kkfor.com

  • https下www跳转到不带www

https监听的是443端口,所以https下的跳转需要在443下配置。
通过代码中的第二个server实现了https://www.kkfor.com跳转到https://kkfor.com

  • https下配置ssl证书及代理端口

通过代码中最后一个server配置了https://kkfor.com的证书,以及代理本地端口。