最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx反向代理和負載均衡的安全加固方案

 更新時間:2026年03月10日 09:25:06   作者:BullSmall  
這篇文章給大家介紹了Nginx反向代理和負載均衡的安全加固方案,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

針對 Nginx 反向代理和負載均衡場景的安全加固,核心是保護代理鏈路、控制后端服務(wù)暴露、防止流量攻擊強化節(jié)點安全。下面我會結(jié)合反向代理 / 負載均衡的核心特性,給出可落地的加固方案,包含具體配置和權(quán)限設(shè)置。

一、反向代理安全加固

反向代理的核心風(fēng)險是:代理配置不當導(dǎo)致后端服務(wù)暴露、請求偽造、緩存攻擊、DDoS 穿透到后端等。

1. 隱藏后端服務(wù)信息(核心)

避免通過響應(yīng)頭泄露后端服務(wù)器的 IP、版本等信息:

http {
    # 1. 隱藏 Nginx 自身版本(基礎(chǔ)加固)
    server_tokens off;
    # 2. 清除/重寫后端響應(yīng)頭(防止泄露后端信息)
    proxy_hide_header X-Powered-By;    # 隱藏后端語言(如 PHP/Java)標識
    proxy_hide_header Server;          # 隱藏后端服務(wù)器版本
    proxy_hide_header X-AspNet-Version;
    # 3. 自定義響應(yīng)頭(可選)
    add_header Server "Proxy Server" always;
    # 4. 禁止傳遞客戶端 IP 外的敏感頭
    proxy_set_header Accept-Encoding "";  # 防止壓縮攻擊
    proxy_set_header X-Real-IP $remote_addr;  # 僅傳遞真實IP(按需)
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

2. 限制代理請求范圍(防止越權(quán)訪問后端)

僅代理指定路徑 / 域名,禁止訪問后端敏感接口:

server {
    listen 443 ssl;
    server_name proxy.example.com;
    # 僅代理 /api 路徑到后端
    location /api/ {
        proxy_pass http://backend_server/;
        proxy_set_header Host $host;
        proxy_connect_timeout 5s;    # 縮短連接超時,防止掛起
        proxy_read_timeout 10s;
        proxy_send_timeout 10s;
        # 禁止訪問后端敏感路徑
        if ($request_uri ~* "/admin|/config|/sql|/phpmyadmin") {
            return 403;
        }
    }
    # 禁止直接訪問代理服務(wù)器的其他路徑
    location / {
        return 403;
    }
}

3. 防止請求偽造(CSRF/Host 頭攻擊)

server {
    # 1. 驗證 Host 頭,防止 Host 頭偽造
    if ($host !~ ^(proxy.example.com|www.example.com)$) {
        return 403;
    }
    # 2. 限制請求方法(僅允許必要的方法)
    if ($request_method !~ ^(GET|POST|HEAD)$) {
        return 405;
    }
    # 3. 添加 CSRF 防護頭(針對后端接口)
    add_header X-CSRF-Protection "1; mode=block" always;
}

4. 代理緩存安全(防止緩存污染)

若啟用代理緩存,需避免緩存敏感數(shù)據(jù):

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
    server {
        location /api/ {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            # 1. 不緩存認證/敏感請求
            proxy_cache_bypass $http_cookie $http_authorization;
            proxy_no_cache $http_cookie $http_authorization;
            # 2. 緩存文件權(quán)限加固
            proxy_cache_lock on;
            proxy_cache_lock_timeout 5s;
            # 3. 防止緩存鍵污染
            proxy_cache_key "$scheme$request_method$host$request_uri";
        }
    }
}
# 緩存目錄權(quán)限加固(僅 nginx 用戶可訪問)
chown -R nginx:nginx /var/cache/nginx
chmod -R 700 /var/cache/nginx

二、負載均衡安全加固

負載均衡的核心風(fēng)險是:節(jié)點暴露、流量不均導(dǎo)致單點過載、健康檢查漏洞、DDoS 攻擊穿透到所有節(jié)點。

1. 后端節(jié)點隱藏與隔離

http {
    # 1. 定義后端節(jié)點池(僅內(nèi)網(wǎng)可訪問,禁止公網(wǎng)暴露)
    upstream backend_pool {
        server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;
        server 192.168.1.11:8080 max_fails=3 fail_timeout=30s;
        # 負載均衡算法(默認輪詢,可選更安全的方式)
        ip_hash;  # 綁定IP到固定節(jié)點,防止會話劫持(適合有狀態(tài)服務(wù))
        # least_conn;  # 最少連接數(shù),防止節(jié)點過載
        # 2. 啟用慢啟動(防止故障恢復(fù)后瞬間過載)
        slow_start 60s;
        # 3. 禁用不健康節(jié)點自動恢復(fù)(需手動確認)
        # down;  # 標記節(jié)點為永久下線
    }
    server {
        listen 443 ssl;
        server_name lb.example.com;
        location / {
            proxy_pass http://backend_pool;
            # 4. 禁止客戶端直接訪問后端節(jié)點IP
            if ($http_referer ~* "192.168.1.") {
                return 403;
            }
        }
    }
}

2. 健康檢查加固(防止流量路由到故障節(jié)點)

Nginx 原生健康檢查基礎(chǔ)版,進階可使用 ngx_http_upstream_module 或第三方模塊(如 nginx-plus):

upstream backend_pool {
    server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;
    server 192.168.1.11:8080 max_fails=3 fail_timeout=30s;
    # 基礎(chǔ)健康檢查(通過失敗次數(shù)判斷)
    # max_fails:失敗3次標記為不可用
    # fail_timeout:30秒內(nèi)不重試故障節(jié)點
}
# 進階:主動健康檢查(需 Nginx Plus 或 OpenResty)
# upstream backend_pool {
#     zone backend 64k;
#     server 192.168.1.10:8080;
#     server 192.168.1.11:8080;
#     health_check interval=5s fails=2 passes=2 uri=/health;
# }

3. 流量控制(防止 DDoS 穿透到后端)

限制單 IP / 單節(jié)點的并發(fā)和請求速率,保護后端集群:

http {
    # 1. 限制單IP并發(fā)連接(負載均衡層攔截)
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn perip 50;  # 單IP最大50個并發(fā)
    # 2. 限制請求速率(防CC攻擊)
    limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
    server {
        listen 443 ssl;
        server_name lb.example.com;
        location / {
            # 速率限制:突發(fā)20個請求,超出返回503
            limit_req zone=req_limit burst=20 nodelay;
            # 3. 限制后端節(jié)點的最大連接數(shù)
            proxy_pass http://backend_pool;
            proxy_connect_timeout 5s;
            proxy_send_timeout 10s;
            proxy_read_timeout 10s;
            proxy_buffering on;  # 啟用緩沖,減少后端壓力
        }
    }
}

4. 負載均衡節(jié)點權(quán)限加固

# 1. 負載均衡服務(wù)器僅開放 80/443 端口(防火墻)
firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
firewall-cmd --reload
# 2. 禁止負載均衡服務(wù)器訪問互聯(lián)網(wǎng)(僅內(nèi)網(wǎng)通向后端)
# 編輯 /etc/sysctl.conf,禁用IP轉(zhuǎn)發(fā)(防止成為跳板)
echo "net.ipv4.ip_forward = 0" >> /etc/sysctl.conf
sysctl -p
# 3. 后端節(jié)點僅允許負載均衡服務(wù)器訪問
# 在后端節(jié)點防火墻添加規(guī)則(以 firewalld 為例)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="負載均衡IP" port protocol="tcp" port="8080" accept'
firewall-cmd --permanent --add-port=8080/tcp --remove-port=8080/tcp  # 禁止其他IP訪問
firewall-cmd --reload

三、通用加固(反向代理 + 負載均衡)

1. HTTPS 端到端加密(代理→后端也加密)

避免代理與后端之間的明文傳輸:

upstream backend_pool {
    # 后端節(jié)點使用 HTTPS
    server 192.168.1.10:443;
    server 192.168.1.11:443;
}
server {
    listen 443 ssl;
    server_name lb.example.com;
    location / {
        proxy_pass https://backend_pool;
        # 驗證后端證書(防止中間人攻擊)
        proxy_ssl_verify on;
        proxy_ssl_verify_depth 2;
        proxy_ssl_trusted_certificate /etc/nginx/ssl/backend_ca.crt;
        proxy_ssl_session_reuse on;
    }
}

2. 審計日志加固

記錄所有代理 / 負載均衡的訪問日志,便于溯源攻擊:

http {
    log_format proxy_log '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for" '
                        '$upstream_addr $upstream_status $upstream_response_time';
    server {
        listen 443 ssl;
        server_name lb.example.com;
        # 訪問日志記錄詳細信息
        access_log /var/log/nginx/proxy_access.log proxy_log;
        error_log /var/log/nginx/proxy_error.log warn;
    }
}
# 日志權(quán)限加固
chown -R nginx:nginx /var/log/nginx
chmod -R 700 /var/log/nginx

四、驗證加固效果

# 1. 檢查配置語法
nginx -t
# 2. 重啟 Nginx
systemctl restart nginx
# 3. 驗證后端節(jié)點是否暴露
curl -I http://lb.example.com
# 響應(yīng)頭不應(yīng)包含后端節(jié)點IP/版本
# 4. 驗證速率限制
ab -n 100 -c 60 http://lb.example.com/  # 模擬高并發(fā),應(yīng)返回503
# 5. 檢查日志是否正常記錄
tail -f /var/log/nginx/proxy_access.log

總結(jié)

  1. 反向代理核心:隱藏后端信息、限制請求范圍、防止緩存污染、驗證 Host 頭,避免后端服務(wù)暴露;
  2. 負載均衡核心:隔離后端節(jié)點(僅內(nèi)網(wǎng)訪問)、強化健康檢查、控制流量速率 / 并發(fā),防止 DDoS 穿透到所有節(jié)點;
  3. 通用加固:端到端 HTTPS 加密、詳細審計日志、最小權(quán)限配置,形成代理→后端的完整安全鏈路。

到此這篇關(guān)于Nginx(反向代理、負載均衡)安全加固的文章就介紹到這了,更多相關(guān)nginx安全加固內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Nginx index指令使用及設(shè)置網(wǎng)站默認首頁

    Nginx index指令使用及設(shè)置網(wǎng)站默認首頁

    index指令用于指定處理請求時使用的默認文件,本文主要介紹了Nginx index指令使用及設(shè)置網(wǎng)站默認首頁,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • CentOS 中Nginx的安裝方法

    CentOS 中Nginx的安裝方法

    最近研究LNMP,首先要在linux下配置nginx服務(wù)器,廢話少說,下面給大家分享下在CentOS 中Nginx的安裝方法
    2017-08-08
  • Nginx+PHP8.0支持視頻上傳的項目實踐

    Nginx+PHP8.0支持視頻上傳的項目實踐

    在Ubuntu 20.04上配置Nginx和PHP 8.0以支持視頻上傳,介紹了調(diào)整Nginx和PHP的配置文件,增加上傳文件大小限制,調(diào)整超時時間和緩沖區(qū)大小等相關(guān)配置,感興趣的可以了解一下
    2025-02-02
  • nginx實現(xiàn)http轉(zhuǎn)換為https的項目實踐

    nginx實現(xiàn)http轉(zhuǎn)換為https的項目實踐

    Nginx作為Web服務(wù)器時,可以通過配置實現(xiàn)HTTP跳轉(zhuǎn)HTTPS,本文主要介紹了nginx實現(xiàn)http轉(zhuǎn)換為https的實踐,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Nginx跨域代理的完整排坑指南(從證書錯誤到CORS配置)

    Nginx跨域代理的完整排坑指南(從證書錯誤到CORS配置)

    本文詳細記錄了一個項目中使用Nginx作為反向代理解決跨域問題的過程,從為子域名申請獨立SSL證書、處理CORS預(yù)檢請求、避免add_header語法錯誤、正確設(shè)置代理Host頭、以及后端HTTPS證書問題等方面逐一排查并解決,最終得到正確的Nginx配置,需要的朋友可以參考下
    2026-04-04
  • Nginx整合Kafka的方法示例

    Nginx整合Kafka的方法示例

    這篇文章主要介紹了Nginx整合Kafka的方法示例,nginx整合kafak后,可以將nginx中的數(shù)據(jù),直接保存到kafka中,感興趣的小伙伴們可以參考一下
    2018-10-10
  • nginx中rewrite和if的使用及配置方式

    nginx中rewrite和if的使用及配置方式

    文章主要解釋了Nginx中rewrite和ifginx跳轉(zhuǎn)需求的實現(xiàn)方式、rewrite和ifginx正則表達式、常用的Nginx正則表達式、案例配置等內(nèi)容,并涉及到了rewrite和if的應(yīng)用場景和用法,以及flag對Nginx中g(shù)inx防盜鏈案例等ginx的ginx基于瀏覽器實現(xiàn)ginx實現(xiàn)分離案例等
    2026-05-05
  • 深入解析nginx-proxy/acme-companion高級部署方案

    深入解析nginx-proxy/acme-companion高級部署方案

    nginx-proxy/acme-companion項目提供了一種優(yōu)雅的解決方案,能夠自動為Docker容器管理的服務(wù)提供HTTPS支持,本文將重點介紹該項目的高級部署模式,幫助開發(fā)者構(gòu)建更安全、更靈活的容器化Web服務(wù)環(huán)境,感興趣的可以了解一下
    2026-05-05
  • Nginx搭建https服務(wù)器教程

    Nginx搭建https服務(wù)器教程

    這篇文章主要為大家詳細介紹了Nginx搭建https服務(wù)器教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Nginx反向代理出現(xiàn)502與504錯誤問題詳解及排查指南

    Nginx反向代理出現(xiàn)502與504錯誤問題詳解及排查指南

    Nginx 作為反向代理服務(wù)器時,502(Bad Gateway)和 504(Gateway Timeout)錯誤是常見的兩類問題,下面我們就來看看這兩個錯誤問題的排查與解決吧
    2025-05-05

最新評論

息烽县| 南川市| 永平县| 隆尧县| 安丘市| 岳池县| 南京市| 轮台县| 丹寨县| 漳州市| 玛曲县| 保德县| 应用必备| 武平县| 韶关市| 建阳市| 韩城市| 台山市| 治县。| 海阳市| 尚义县| 万载县| 凉山| 湖口县| 农安县| 卓尼县| 安庆市| 江都市| 嘉峪关市| 嘉鱼县| 改则县| 望都县| 隆尧县| 英山县| 且末县| 永定县| 彝良县| 沁阳市| 霞浦县| 合阳县| 黄大仙区|