上線 HTTPS 服務 / 反向代理 LB / 隱藏業務IP

ssl 證書免費申請

ssl for free 可以免費爲我們提供三個月的 ssl 證書及續簽服務,填寫業務域名,上傳驗證文件到業務服務器,驗證成功後便會生成相應的證書.crt和私鑰.key,提供一次性下載,重新生成,銷燬及續簽服務。

clipboard.png

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。

clipboard.png
5、保存生效

如此業務域名將被解析至全站加速CDN,而後 SCDN 回源請求給隱藏在後方的業務服務器,攻擊者無法發現真實的業務服務器IP。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章