nginx的ssl证书安装及rewrite实现不同服务的转发

我们要将同一个域名下的不同服务都使用nginx转为https协议,
但是我们只有一个ssl证书。怎么办呢

首先nginx配置ssl证书

1、现在nginx的安装目录下的conf目录下新建cert目录,

将下载 好的证书上传cert目录下

2、修改nginx.conf配置文件

增加一下配置

server {
	#可以兼容http协议,就是HTTPS和http同时存在
    listen 80 default backlog=2048; 
	#监听HTTPS的端口
    listen 443 ssl;
    #你的域名
    server_name www.xxxxx.com 

    index index.html;
    #证书存放位置,
    ssl_certificate   cert/6078120_xxxx.com.pem;
     #密钥存放位置,
    ssl_certificate_key  cert/6078120_xxxx.com.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 / {
    add_header 'Access-Control-Allow-Origin' '*';
    index index.html;
    #这是根路径代理的地址
    proxy_pass http://127.0.0.1:8083;
 }
    }

server {
    listen 80;
    # 域名
    server_name www.xxxx.com;
   # 把http的域名请求转成https且转发到443端口
    rewrite ^(.*)$ https://$host:443$1 permanent;
}

以上配置完成后即可完成ssl协议的安装

rewrite实现服务的转发

那比如我这边有一个 订单服务 www.xxxxx.com :8081 和一个商品服务为www.xxxxx.com :8082,两个服务都在同一个服务器上

那我们需要将订单服务和商品服务业要转为HTTPS协议,怎么弄呢?
看下面
前端先将www.xxxxx.com :8081 和www.xxxxx.com :8082的端口替换为www.xxxxx.com/api1,和www.xxxxx.com/api2
nginx.conf的443的server下配置

 location /api1{
     #会匹配/api1后面的请求,然后转发到代理地址下
     rewrite  ^/api1/(.*)$ /$1 break;
      #代理的目标地址
     proxy_pass http://127.0.0.1:9212;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
     proxy_connect_timeout 1;
     proxy_send_timeout 30;
     proxy_read_timeout 60;
}
  location /api2{
    
     rewrite  ^/api2/(.*)$ /$1 break;
      #代理的目标地址
     proxy_pass http://127.0.0.1:9214;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
     proxy_connect_timeout 1;
     proxy_send_timeout 30;
     proxy_read_timeout 60;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值