上线 HTTPS 服务 / 反向代理 LB / 隐藏业务IP

栏目: 后端 · 发布时间: 7年前

内容简介:配置如下

ssl 证书免费申请

ssl for free 可以免费为我们提供三个月的 ssl 证书及续签服务,填写业务域名,上传验证文件到业务服务器,验证成功后便会生成相应的证书.crt和私钥.key,提供一次性下载,重新生成,销毁及续签服务。

上线 HTTPS 服务 / 反向代理 LB / 隐藏业务IP

Nginx 配置 HTTPS / 负载均衡

配置如下

注意:在upstream中加入hash语句。server语句中不能写入weight等其他的參数,hash_method是使用的hash算法。

upstream upstream_server_api {
    #ip_hash; 同一请求ip发往同一负载
    #fair; 按后端服务器的响应时间来分配请求,响应时间短的优先分配
    #--url_hash-- 按訪问url的hash结果来分配请求,使每一个url定向到同一个后端服务器
    #hash $request_uri;
    #hash_method crc32;
    #--url_hash--
    server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=30s;#权重1 失败3此后暂停30s
    server 127.0.0.1:8082 weight=2 max_fails=3 fail_timeout=30s;#权重2 失败3此后暂停30s
    server 127.0.0.1:8083 backup;# 当其他服务器不可用或全忙时启用
    server 127.0.0.1:8084 down;# 服务下线
}
server {
    listen 443 ssl default;
    server_name api.foo.com;
    index index.html index.htm index.php;
    root /home/wwwroot/web;
    ...
    
    ssl on;
    ssl_certificate     /opt/nginx_ssl/certificate.crt;
    ssl_certificate_key /opt/nginx_ssl/private.key;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    
    ...
    
    # 如果是静态请求 nginx 负责处理 否则转发给后端服务器location 处理动态请求
    # 你可以根据自己的业务定义相应的转发规则
    location / {
        try_files $uri $uri/ @loc_server_api;
    }
    
    # 后端服务器location则反向代理给后端服务
    location @loc_server_api {
        proxy_set_header Host $proxy_host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://upstream_server_api;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires      30d;
    }

    location ~ .*\.(js|css)?$ {
        expires      12h;
    }

    location ~ /\. {
        deny all;
    }

}

如果需要重定向 http 到 https 可使用如下配置

server {
    listen 80 default;
    server_name api.foo.com;
    #重定向http至https
    return 301 https://api.foo.com;
}

检查配置后重启服务即可

nginx -t
systemctl restart nginx.service

利用阿里云 SCDN 全站加速隐藏业务服务器 IP

全站加速 SCDN 并不能对抗 DDOS/CC 攻击,它只是在 CDN 的基础上同时加速上行请求:选用更为畅通和高速的网络通道传输客户端向服务器端发送的请求,适合动态类数据的请求(web service)。

1、创建业务域名 api.foo.com 下的 SCDN 规则,获得加速域名。

2、CNAME 解析业务域名到相应的 SCDN 规则提供的加速域名。

3、配置回源方式(业务域名|源站域名|自定义域名),这里我们选业务域名,我们业务服务器也应一致监听此业务域名。

4、配置 HTTPS 填写申请的证书及私钥开启 HTTPS 访问,可配置是否重定向 HTTP 请求至 HTTPS。

上线 HTTPS 服务 / 反向代理 LB / 隐藏业务IP

5、保存生效

如此业务域名将被解析至全站加速CDN,而后 SCDN 回源请求给隐藏在后方的业务服务器,攻击者无法发现真实的业务服务器IP。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Clean Code

Clean Code

Robert C. Martin / Prentice Hall / 2008-8-11 / USD 49.99

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code......一起来看看 《Clean Code》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器