[{"data":1,"prerenderedAt":470},["ShallowReactive",2],{"page-\u002Fvue\u002F代理":3},{"id":4,"title":5,"body":6,"description":15,"extension":463,"meta":464,"navigation":465,"path":466,"seo":467,"stem":468,"__hash__":469},"content\u002FVue\u002F代理.md","网络代理类型",{"type":7,"value":8,"toc":445},"minimark",[9,12,16,19,34,47,53,59,65,71,79,99,102,109,146,148,155,175,177,184,191,224,230,237,240,243,253,279,285,318,320,327,330,336,338,340,346,359,365,367,369,375,383,385,392,416,418,425],[10,11,5],"h1",{"id":5},[13,14,15],"p",{},"根据代理服务器的功能和工作方式，网络代理可以分为以下几类：",[13,17,18],{},"匿名代理：匿名代理的主要作用是隐藏客户端的真实IP地址，保护用户隐私。当使用匿名代理时，目标服务器无法直接获取到客户端的IP地址，从而提高了隐私保护程度。",[13,20,21,25,26,29,30,33],{},[22,23,24],"strong",{},"透明代理","：透明代理",[22,27,28],{},"不对客户端的请求进行任何修改","，只是在客户端和目标服务器之间转发数据。",[22,31,32],{},"透明代理的主要用途是提供网络连接的中转服务，如负载均衡、网关代理","等。",[13,35,36,39,40,43,44],{},[22,37,38],{},"反向代理","：反向代理是指",[22,41,42],{},"代理服务器接收来自客户端的请求","，并将请求转发给内部网络中的多个目标服务器。",[22,45,46],{},"反向代理通常用于实现负载均衡、安全防护和内容分发等功能。",[13,48,49,52],{},[22,50,51],{},"缓存代理","：缓存代理服务器可以缓存经常访问的网络资源（如网页、图片等），从而减少对目标服务器的请求压力和提高访问速度。缓存代理通常应用于网站加速、内容分发网络（CDN）等场景。",[13,54,55,58],{},[22,56,57],{},"SOCKS代理","：SOCKS代理是一种通用的代理协议，支持TCP和UDP协议，可以处理各种类型的网络请求。与HTTP代理相比，SOCKS代理更加灵活和通用，但配置和使用相对复杂。",[13,60,61,64],{},[22,62,63],{},"HTTP代理","：HTTP代理专门处理HTTP和HTTPS协议的网络请求。它可以修改请求头信息、过滤内容、缓存资源等，通常应用于网页访问、内容过滤和加速等场景。",[13,66,67,70],{},[22,68,69],{},"VPN（虚拟专用网络）","：虽然VPN不是严格意义上的代理，但它也可以实现类似的功能。VPN通过在客户端和VPN服务器之间建立加密隧道，将客户端的网络请求封装在隧道内进行传输，从而实现IP隐藏、数据加密和跨地区访问等功能。",[72,73,75,76],"h3",{"id":74},"_2-什么是-ssltls","2. ",[22,77,78],{},"什么是 SSL\u002FTLS？",[80,81,82,93,96],"ul",{},[83,84,85,88,89,92],"li",{},[22,86,87],{},"SSL（Secure Sockets Layer）"," 和 ",[22,90,91],{},"TLS（Transport Layer Security）"," 是用于加密网络通信的协议。",[83,94,95],{},"它们确保客户端和服务器之间的数据传输是加密的，防止数据被窃听或篡改。",[83,97,98],{},"现在广泛使用的是 TLS 协议（SSL 是它的前身，已逐渐被淘汰）。",[100,101],"hr",{},[72,103,105,106],{"id":104},"_3-什么是证书","3. ",[22,107,108],{},"什么是证书？",[80,110,111,117,124],{},[83,112,113,116],{},[22,114,115],{},"SSL\u002FTLS 证书","是一种数字证书，用于验证服务器的身份并启用加密通信。",[83,118,119,120,123],{},"证书由受信任的 ",[22,121,122],{},"证书颁发机构（CA，Certificate Authority）"," 签发。",[83,125,126,127],{},"证书包含以下信息：\n",[80,128,129,137,140,143],{},[83,130,131,132,136],{},"域名（例如 ",[133,134,135],"code",{},"example.com","）。",[83,138,139],{},"公钥（用于加密数据）。",[83,141,142],{},"颁发机构的信息。",[83,144,145],{},"有效期。",[100,147],{},[72,149,151,152],{"id":150},"_4-为什么代理需要-ssl-和证书","4. ",[22,153,154],{},"为什么代理需要 SSL 和证书？",[80,156,157,163,169],{},[83,158,159,162],{},[22,160,161],{},"加密通信","：如果客户端通过 HTTPS（HTTP over SSL\u002FTLS）访问代理，代理需要使用 SSL 证书来加密通信。",[83,164,165,168],{},[22,166,167],{},"身份验证","：SSL 证书可以验证代理服务器的身份，确保客户端连接的是合法的服务器，而不是恶意中间人。",[83,170,171,174],{},[22,172,173],{},"安全性","：在反向代理中，SSL 可以保护客户端和后端服务器之间的通信。",[100,176],{},[72,178,180,181],{"id":179},"_5-如何在代理中使用-ssl-和证书","5. ",[22,182,183],{},"如何在代理中使用 SSL 和证书？",[185,186,188],"h4",{"id":187},"_51-获取-ssl-证书",[22,189,190],{},"5.1 获取 SSL 证书",[80,192,193],{},[83,194,195,196],{},"你可以从以下途径获取 SSL 证书：\n",[80,197,198,204,218],{},[83,199,200,203],{},[22,201,202],{},"购买证书","：从受信任的证书颁发机构（如 DigiCert、GoDaddy）购买。",[83,205,206,209,210,217],{},[22,207,208],{},"免费证书","：使用 ",[211,212,216],"a",{"href":213,"rel":214},"https:\u002F\u002Fletsencrypt.org\u002F",[215],"nofollow","Let's Encrypt"," 免费获取 SSL 证书。",[83,219,220,223],{},[22,221,222],{},"自签名证书","：自己生成证书（适合测试环境，但浏览器会提示不安全）。",[185,225,227],{"id":226},"_52-配置反向代理使用-ssl",[22,228,229],{},"5.2 配置反向代理使用 SSL",[13,231,232,233,236],{},"以下是使用 ",[22,234,235],{},"Nginx"," 作为反向代理并配置 SSL 的示例：",[13,238,239],{},"nginx",[13,241,242],{},"复制",[244,245,250],"pre",{"className":246,"code":248,"language":249},[247],"language-text","server {\n    listen 443 ssl;  # 监听 HTTPS 端口\n    server_name example.com;\n\n    # SSL 证书和私钥路径\n    ssl_certificate \u002Fpath\u002Fto\u002Fyour\u002Fcertificate.crt;\n    ssl_certificate_key \u002Fpath\u002Fto\u002Fyour\u002Fprivate.key;\n\n    # SSL 配置\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers HIGH:!aNULL:!MD5;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;  # 将请求转发到后端服务器\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n\nserver {\n    listen 80;  # 监听 HTTP 端口\n    server_name example.com;\n    return 301 https:\u002F\u002F$host$request_uri;  # 将 HTTP 请求重定向到 HTTPS\n}\n","text",[133,251,248],{"__ignoreMap":252},"",[80,254,255,263,271],{},[83,256,257,262],{},[22,258,259],{},[133,260,261],{},"ssl_certificate","：指定 SSL 证书文件的路径。",[83,264,265,270],{},[22,266,267],{},[133,268,269],{},"ssl_certificate_key","：指定私钥文件的路径。",[83,272,273,278],{},[22,274,275],{},[133,276,277],{},"proxy_pass","：将请求转发到后端服务器。",[185,280,282],{"id":281},"_53-使用-lets-encrypt-获取免费证书",[22,283,284],{},"5.3 使用 Let's Encrypt 获取免费证书",[80,286,287,302,315],{},[83,288,289,290,293,294,242,296],{},"安装 Certbot 工具（Let's Encrypt 的官方客户端）：",[291,292],"br",{},"bash",[291,295],{},[244,297,300],{"className":298,"code":299,"language":249},[247],"sudo apt install certbot\n",[133,301,299],{"__ignoreMap":252},[83,303,304,305,293,307,242,309],{},"获取证书：",[291,306],{},[291,308],{},[244,310,313],{"className":311,"code":312,"language":249},[247],"sudo certbot certonly --nginx -d example.com\n",[133,314,312],{"__ignoreMap":252},[83,316,317],{},"证书会自动配置到 Nginx 中。",[100,319],{},[72,321,323,324],{"id":322},"_6-自签名证书仅用于测试","6. ",[22,325,326],{},"自签名证书（仅用于测试）",[13,328,329],{},"如果你在测试环境中使用自签名证书，可以按照以下步骤生成：",[185,331,333],{"id":332},"_61-生成自签名证书",[22,334,335],{},"6.1 生成自签名证书",[13,337,293],{},[13,339,242],{},[244,341,344],{"className":342,"code":343,"language":249},[247],"openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n",[133,345,343],{"__ignoreMap":252},[80,347,348],{},[83,349,350,351,354,355,358],{},"这会生成两个文件：",[133,352,353],{},"key.pem","（私钥）和 ",[133,356,357],{},"cert.pem","（证书）。",[185,360,362],{"id":361},"_62-配置-nginx-使用自签名证书",[22,363,364],{},"6.2 配置 Nginx 使用自签名证书",[13,366,239],{},[13,368,242],{},[244,370,373],{"className":371,"code":372,"language":249},[247],"server {\n    listen 443 ssl;\n    server_name example.com;\n\n    ssl_certificate \u002Fpath\u002Fto\u002Fcert.pem;\n    ssl_certificate_key \u002Fpath\u002Fto\u002Fkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n    }\n}\n",[133,374,372],{"__ignoreMap":252},[80,376,377],{},[83,378,379,382],{},[22,380,381],{},"注意","：浏览器会提示自签名证书不安全，你需要手动信任证书。",[100,384],{},[72,386,388,389],{"id":387},"_7-ssl-终止","7. ",[22,390,391],{},"SSL 终止",[80,393,394,397,408],{},[83,395,396],{},"在反向代理中，SSL 终止是一种常见做法。反向代理负责处理 SSL 加密和解密，然后将未加密的请求转发到后端服务器。",[83,398,399,400],{},"优点：\n",[80,401,402,405],{},[83,403,404],{},"减轻后端服务器的负担。",[83,406,407],{},"集中管理 SSL 证书。",[83,409,410,411],{},"缺点：\n",[80,412,413],{},[83,414,415],{},"反向代理和后端服务器之间的通信可能未加密（可以通过内网或 VPN 保证安全）。",[100,417],{},[72,419,421,422],{"id":420},"_8-常见问题","8. ",[22,423,424],{},"常见问题",[80,426,427,433,439],{},[83,428,429,432],{},[22,430,431],{},"证书过期","：SSL 证书有有效期（通常为 90 天到 1 年），需要定期更新。",[83,434,435,438],{},[22,436,437],{},"混合内容问题","：如果网页同时加载 HTTP 和 HTTPS 资源，浏览器会提示不安全。",[83,440,441,444],{},[22,442,443],{},"证书链不完整","：如果中间证书缺失，浏览器会提示证书错误。",{"title":252,"searchDepth":446,"depth":446,"links":447},2,[448,451,453,455,457,459,461],{"id":74,"depth":449,"text":450},3,"2. 什么是 SSL\u002FTLS？",{"id":104,"depth":449,"text":452},"3. 什么是证书？",{"id":150,"depth":449,"text":454},"4. 为什么代理需要 SSL 和证书？",{"id":179,"depth":449,"text":456},"5. 如何在代理中使用 SSL 和证书？",{"id":322,"depth":449,"text":458},"6. 自签名证书（仅用于测试）",{"id":387,"depth":449,"text":460},"7. SSL 终止",{"id":420,"depth":449,"text":462},"8. 常见问题","md",{},true,"\u002Fvue\u002F代理",{"title":5,"description":15},"Vue\u002F代理","-IBo0oYc92hRrnWba2chzFi8HBIUhE0TSA48LP3Z19A",1791042472348]