# 使用Nginx部署HTTPS服务

# https 服务部署

使用 HTTPS 需要生成私钥与公钥;某个文件夹中打开 git bash 输入命令:openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout localhost-privkey.pem -out localhost-cert.pem;会生成两个文件 localhost-privkey.pem 跟 localhost-cert.pem;

这里我将生成的证书放在了 nginx 安装目录下的 certs 文件夹中。这样就完成了 https 服务的部署。

    proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m;
    # 表示要启动一个服务
    server {
        # 开启 ssl 加密算法
        listen       443 ssl; # 服务监听的端口-https默认使用端口
        server_name  localhost; # 浏览器访问的 host name
        # 指定对应的证书
        # 相对路径-证书存放的路径
        ssl_certificate_key ../certs/localhost-privkey.pem;
        ssl_certificate  ../certs/localhost-cert.pem;
        # 要代理的路由
        location / {
          # 匹配到 localhost:9999/ 代理到下面的地址
          proxy_pass http://localhost:8888;
        }
    }

# 访问 http 跳转到 https 服务

如果我们想在访问 http 的时候直跳转到 https:

    # 增加服务配置 http 跳转到 https
    server {
      listen       8777 default_server;
      listen       [::]:8777 default_server; # 使用 IP 的情况下
      server_name localhost;
      return 302 https://$server_name$request_uri; # server_name 就是前面指定的 localhost,request_uri 就是具体访问的路径
    }
    # 表示要启动一个服务
    server {
        # 开启 ssl 加密算法
        listen       443 ssl; # 服务监听的端口-https 默认使用端口
        server_name  localhost; # 浏览器访问的 host name
        # 指定对应的证书
        # 相对路径-证书存放的路径
        ssl_certificate_key ../certs/localhost-privkey.pem;
        ssl_certificate  ../certs/localhost-cert.pem;
        # 要代理的路由
        location / {
          # 匹配到 localhost:9999/ 代理到下面的地址
          proxy_pass http://localhost:8888;
        }
    }

评 论:

更新: 11/21/2020, 7:00:56 PM