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

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

内容简介:配置如下

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。


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

查看所有标签

猜你喜欢:

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

Designing Web Navigation

Designing Web Navigation

James Kalbach / O'Reilly Media / 2007-8-15 / USD 49.99

Thoroughly rewritten for today's web environment, this bestselling book offers a fresh look at a fundamental topic of web site development: navigation design. Amid all the changes to the Web in the pa......一起来看看 《Designing Web Navigation》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换