最近看阿里云ECS操作系统又更新了,然后我又把博客服务器操作系统换成Windows Server 2016了。数据库也换成了SQLServer2016(数据库性能提升了不少)


本文用到的工具:

    IIS1.0(根据自己的版本)

    Nginx 1.8.1(选个比较稳定的版本)

    Nginx下载地址:http://nginx.org/en/download.html

6362711696674346589431655.png

    阿里云SSL证书(Symantec免费DV)自行申请

    

6362711765513404685162549.jpg


IIS作为我们博客的后端Web服务器,主要是负责程序的运行

Nginx作为前端服务器,主要是负责端口转发以及证书绑定


  1. IIS和Nginx不能同时占用相同的端口,所以我们要关闭IIS上的80端口的网站或者更改网站为其他端口。这里我们的网站端口改成 http://127.0.0.1:7412(建议使用内网或者本机IP,主要是不走外网节省外网流量在一点就是走内网比外网快。)

6362711813861677543389826.jpg

主机名称也就是域名这里就不需要填写了

    2.解压我们下载好的Nginx,解压目录自行选择。Nginx我就直接放到C盘根目录下了

    

6362711836602207439248812.jpg

    3.从阿里云上面下载我们需要的证书,下载我们相对应的证书

    

6362711856060464784503871.jpg

4.下载之后我们在Nginx目录下新建一个cert的文件,存放我们申请的证书

6362711872808657798137593.jpg

   

    

  5.配置我们的Nginx,阿里云官方写好了一个例子我们直接拿过来用就行。稍加改动一下文件路径

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/xxxx.pem;
    ssl_certificate_key  cert/xxxx.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}

  6.修改SSL证书路径主要改变:cert/xxx.pem 改成./cert/xxx.pem,Key文件以相同的方式改路径

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   ./cert/xxxx.pem;
    ssl_certificate_key  ./cert/xxxx.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}

    7.把配置好的SSL证书反向代理我们IIS上的网站(www.xudeyi.com)

server {
listen  443;
server_name www.xudeyi.com;
ssl on;
ssl_certificate   ./cert/xxxx.pem;
ssl_certificate_key  ./cert/xxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:7412;
}
}

8.配置不带WWW域名SSL证书,把(xudeyi.com)301重定向到(https://www.xudeyi.com)

server {
listen 443;
server_name xudeyi.com;
ssl on;
ssl_certificate   ./cert/xxxx.pem;
ssl_certificate_key  ./cert/xxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
return 301 https://www.xudeyi.com$request_uri;
}

9.配置普通HTTP请求重定向,把(http://www.xudeyi.com和http://xudeyi.com)重定向到(https://www.xudeyi.com)

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

10.启动Nginx服务器(关于Nginx命令自行百度)

    

6362712019094397631062553.jpg


流程图

6362712055440009742964597.jpg