Nginx 配置 SSL 初探

前阵子低价入了一个5年年限的 SSL 证书,域名恰好闲置中,于是自己也折腾了一下,去感受下 https 的魅力。

以下是我的配置:

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

    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/ssl.key;

    location / {
        root /path/to/root;
        index index.html;
    }
}

server {
    listen 80;
    server_name example.com www.example.com;

    if ($host = 'example.com') {
        rewrite (.*) https://example.com$1 permanent;
    }

    if ($host = 'www.example.com') {
        rewrite (.*) https://www.example.com$1 permanent;
    }
}

我使用了 if 语句让一级域名和二级域名能够分别跳转到各自的 https 地址。即访问 http://example.com 会跳转到 https://example.com;访问 http://www.example.com 会跳转到 https://www.example.com。有没有更好的方法呢?

不过还需要注意以下几点:

  • if 后面需要加空格,否则无法通过 nginx 的语法测试;
  • 网页中的 src 尽量不要包含 http:// 开头的地址,使用本地的相对地址或者加上 https:// 的本地文件链接,否则会提示网页不安全。
  • rewrite 和 301 重定向都是可以的,还不是特别理解两者的区别。(似乎前者能够分散 http 和 https 的权重,后者是永久重定向,在 SEO 方面才需要考虑?)

希望自己能够有时间、精力、恒心去做完整个站点。以上。

你可能感兴趣的:(Nginx 配置 SSL 初探)