Nginx核心功能
Nginx代理技術(shù)核心概念
(一)正向代理(Forward Proxy)
1. 基本定義
正向代理是客戶端與目標(biāo)服務(wù)器之間的?中間層代理服務(wù)?,其核心作用為:
? 接收客戶端請(qǐng)求后?代替客戶端訪問目標(biāo)服務(wù)器?
? 將響應(yīng)結(jié)果返回客戶端并?隱藏客戶端真實(shí)身份?12
2. 技術(shù)原理
sequenceDiagram participant 客戶端 participant 正向代理服務(wù)器 participant 目標(biāo)服務(wù)器 客戶端->>正向代理服務(wù)器:HTTP/HTTPS請(qǐng)求 正向代理服務(wù)器->>目標(biāo)服務(wù)器: 轉(zhuǎn)發(fā)請(qǐng)求 目標(biāo)服務(wù)器-->>正向代理服務(wù)器: 返回響應(yīng) 正向代理服務(wù)器-->>客戶端: 返回?cái)?shù)據(jù)
3. 應(yīng)用場(chǎng)景
場(chǎng)景類型 | 具體說明 |
網(wǎng)絡(luò)訪問控制 | 企業(yè)內(nèi)網(wǎng)限制員工訪問特定網(wǎng)站時(shí),通過代理過濾非法請(qǐng)求 |
IP匿名保護(hù) | 爬蟲程序通過代理池輪轉(zhuǎn)IP防止被目標(biāo)網(wǎng)站封禁 |
跨國(guó)加速訪問 | 用戶通過海外代理服務(wù)器訪問被地域限制的內(nèi)容(如學(xué)術(shù)論文庫) |
緩存加速 | 代理服務(wù)器緩存高頻訪問資源減少重復(fù)請(qǐng)求 |
(二)反向代理(Reverse Proxy)
1. 基本定義
反向代理是位于服務(wù)端的代理架構(gòu),核心特征表現(xiàn)為:
? 接收客戶端請(qǐng)求后?按策略分發(fā)至后端服務(wù)器集群?
? 對(duì)外暴露統(tǒng)一訪問入口并?隱藏后端服務(wù)器拓?fù)浣Y(jié)構(gòu)?34
2. 技術(shù)原理
sequenceDiagram participant 客戶端 participant 反向代理服務(wù)器 participant 后端服務(wù)器1 participant 后端服務(wù)器2 客戶端->>反向代理服務(wù)器: HTTP/HTTPS請(qǐng)求 反向代理服務(wù)器->>后端服務(wù)器1: 轉(zhuǎn)發(fā)請(qǐng)求 后端服務(wù)器1-->>反向代理服務(wù)器: 返回響應(yīng) 反向代理服務(wù)器-->>客戶端: 返回?cái)?shù)據(jù)
3. 應(yīng)用場(chǎng)景
場(chǎng)景類型 | 具體說明 |
負(fù)載均衡 | 將流量按權(quán)重、輪詢等策略分發(fā)至多臺(tái)服務(wù)器 |
安全防護(hù) | 通過代理層實(shí)施WAF防護(hù)、DDoS攻擊過濾 |
SSL終端卸載 | 在代理層集中處理HTTPS加密解密,降低后端服務(wù)器計(jì)算壓力 |
灰度發(fā)布 | 按比例將新版本流量導(dǎo)向特定服務(wù)器進(jìn)行測(cè)試 |
一、部署實(shí)踐指南
(一)基礎(chǔ)環(huán)境準(zhǔn)備
1. 服務(wù)器配置要求
# 操作系統(tǒng)版本驗(yàn)證 cat /etc/redhat-release # CentOS 7.6+ # 硬件最低配置 CPU: 2核+ 內(nèi)存: 2GB+ 磁盤: 20GB+(建議SSD) 網(wǎng)絡(luò): 百兆帶寬+
2. 依賴包安裝
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget https://nginx.org/download/nginx-1.25.3.tar.gz tar zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3
(二)正向代理部署流程
1. 編譯安裝配置
./configure --prefix=/usr/local/nginx-proxy --with-http_ssl_module make && make install
2. 核心配置文件
nginxCopy Code
# /usr/local/nginx-proxy/conf/nginx.conf worker_processes 4; events { worker_connections 10240; } http { resolver 8.8.8.8 114.114.114.114 valid=300s; server { listen 3128; access_log logs/proxy.access.log; location / { proxy_pass $scheme://$http_host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_connect_timeout 30s; } } }
3. 關(guān)鍵參數(shù)說明
參數(shù)項(xiàng) | 作用說明 |
resolver | 指定DNS解析服務(wù)器地址及緩存有效期 |
proxy_pass | 動(dòng)態(tài)構(gòu)建目標(biāo)URL實(shí)現(xiàn)泛域名代理 |
proxy_buffers | 設(shè)置響應(yīng)數(shù)據(jù)緩沖區(qū)大?。?56個(gè)4KB塊) |
proxy_connect_timeout | 代理服務(wù)器與目標(biāo)服務(wù)器建立連接的超時(shí)時(shí)間 |
4. 代理驗(yàn)證方法
# 通過curl測(cè)試代理連通性 curl -x http://代理IP:3128 https://www.example.com # 瀏覽器代理配置 Chrome設(shè)置 > 高級(jí) > 系統(tǒng) > 打開代理設(shè)置 > 手動(dòng)設(shè)置代理
(三)反向代理部署流程
1. 編譯安裝配置
./configure --prefix=/usr/local/nginx-reverse --with-http_stub_status_module --with-http_ssl_module --with-stream make && make install
2. 負(fù)載均衡配置
# /usr/local/nginx-reverse/conf/nginx.conf upstream backend { server 192.168.1.101:8080 weight=5; server 192.168.1.102:8080 weight=3; server 192.168.1.103:8080 backup; keepalive 32; } server { listen 443 ssl; server_name www.yourdomain.com; ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
3. 高級(jí)功能配置
# 健康檢查配置 upstream backend { server 192.168.1.101:8080 max_fails=3 fail_timeout=30s; server 192.168.1.102:8080 max_fails=3 fail_timeout=30s; check interval=5000 rise=2 fall=3 timeout=1000 type=http; check_http_send "HEAD /health HTTP/1.0 "; check_http_expect_alive http_2xx http_3xx; } # 緩存加速配置 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m max_size=10g; server { location / { proxy_cache mycache; proxy_cache_valid 200 302 10m; proxy_cache_key "$scheme$request_method$host$request_uri"; } }
4. 配置驗(yàn)證命令
`nginx -t# 檢查配置文件語法 systemctl reload nginx # 熱加載配置`
二、技術(shù)對(duì)比與選型建議
(一)核心差異對(duì)比表
對(duì)比維度 | 正向代理 | 反向代理 |
部署位置 | 客戶端網(wǎng)絡(luò)邊界 | 服務(wù)端網(wǎng)絡(luò)邊界 |
配置主體 | 客戶端主動(dòng)設(shè)置代理 | 服務(wù)端透明配置 |
核心功能 | 客戶端身份隱藏/訪問控制 | 服務(wù)端負(fù)載均衡/高可用 |
典型應(yīng)用 | 爬蟲/IP偽裝/跨國(guó)加速 | 網(wǎng)站集群/微服務(wù)網(wǎng)關(guān) |
性能消耗 | 中(需處理客戶端多樣化請(qǐng)求) | 高(承載大并發(fā)流量分發(fā)) |
(二)生產(chǎn)環(huán)境選型建議
1. ?正向代理適用場(chǎng)景?
? 需要突破IP訪問限制的跨國(guó)業(yè)務(wù)系統(tǒng)
? 企業(yè)內(nèi)部上網(wǎng)行為審計(jì)管理
? 分布式爬蟲系統(tǒng)的IP資源池建設(shè)
2. ?反向代理適用場(chǎng)景?
? 日均PV超過百萬的電商網(wǎng)站
? 需要SSL集中管理的金融平臺(tái)
? 基于Kubernetes的微服務(wù)架構(gòu)入口
三、安全加固措施
(一)基礎(chǔ)安全配置
`# 隱藏版本信息 server_tokens off; # 限制請(qǐng)求方法 if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } # 防DDoS配置 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;`
(二)SSL最佳實(shí)踐
`ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; ssl_session_cache shared10m; ssl_session_timeout 10m;`
(三)WAF集成方案
`# 使用ModSecurity模塊 modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf; # 常見防護(hù)規(guī)則 SecRule REQUEST_HEADERS:User-Agent "nikto" "id:1001,deny,status:403" SecRule ARGS:username "@rx 主站蜘蛛池模板: 国产成人精品日本亚洲语言 | 国产又黄又爽又猛的免费视频播放 | 国产午夜精品久久久久免费视小说 | 欧美精品videosex极品 | 手机看片福利日韩 | 91精品啪在线观看国产日本 | 嘿嘿嘿视频在线观看网站 | 国产精品爽爽影院在线 | 真实一级一级一片免费视频 | 人人人草| 5g影院天天爽 | 五月天婷婷在线观看 | 午夜视频免费观看 | 色老久久精品偷偷鲁一区 | 久久久中文 | 欧美精品综合一区二区三区 | tom影院亚洲国产日本一区 | 99国产精品久久久久久久成人热 | 亚洲国产成人久久三区 | 亚洲啪啪网站 | 88影视在线观看污污 | 黄色国产在线观看 | 欧美天天 | 色免费视频 | 在线观看你懂的网址 | 日韩毛片免费视频 | 日本黄色大片网站 | 啪啪啦资源站永久 | 欧美黄色录像视频 | 岛国大片在线 | 亚洲视频一区二区在线观看 | 视频在线免费观看 | 97天天摸天天碰天天爽 | jlzzjlzzjlzz日本亚洲 | 爱爱小说视频永久免费网站 | 欧美高清视频一区 | 视频在线二区 | 狠狠gao| 国产小毛片 | 欧美三级视频在线播放 | 国产永久免费爽视频在线 |