1. 反向代理
2. 负载均衡 (轮询, 加权轮询)
3. iphash 可以保证session不共享的问题 比如让user1一直到server1上
(但是这个方法不够好,server1挂了 就都丢失了; 用 Redis)
4. 动静分离:静态资源 用 Nginx,动态资源 用 web服务
1. 反向代理
2. 负载均衡 (轮询, 加权轮询)
3. iphash 可以保证session不共享的问题 比如让user1一直到server1上
(但是这个方法不够好,server1挂了 就都丢失了; 用 Redis)
4. 动静分离:静态资源 用 Nginx,动态资源 用 web服务
在目标服务器 和 客户端 中间 有一个 代理服务器
1. 正向代理(forward proxy)
为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端
* 正向代理,其实是"代理服务器"代理了"客户端",去和"目标服务器"进行交互
2. 反向代理(reverse proxy)
以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端
*反向代理,其实是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。
总结:
一个隐藏的是 客户端
一个隐藏的是 服务器端
正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源(翻墙)。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
📌 什么是 HTTP 服务器?
HTTP 服务器(Web Server)是一种软件,用于处理客户端(通常是浏览器)发送的 HTTP 请求,并返回网页、数据或 API 响应。
🔹 HTTP 服务器的主要作用
1. 处理请求:接受来自浏览器、移动应用或 API 客户端的 HTTP 请求。
2. 返回数据:提供静态文件(HTML、CSS、JS、图片等)或动态数据(数据库查询结果、API 响应)。
3. 反向代理:将请求转发到后端服务器,提高性能或进行负载均衡。
4. 安全控制:提供 HTTPS、身份验证、访问控制等安全功能。
🔹 HTTP 服务器的工作流程
💡 假设用户在浏览器输入 http://example.com,请求一个网页:
1. 客户端发送 HTTP 请求
• 浏览器向 example.com 服务器发送 GET /index.html 请求。
2. 服务器解析请求
• 服务器检查 index.html 是否存在,并决定返回什么内容。
3. 服务器返回 HTTP 响应
• 服务器返回 HTTP 状态码 200 OK,并附带 index.html 文件内容。
4. 浏览器渲染页面
• 浏览器解析 index.html,然后请求相关的 CSS、JavaScript 和图片,最终呈现网页。
• 在你自己的服务器上,你可以合法抓包(tcpdump)。
• 在同一局域网(且有权限),可以使用 Wireshark。
• 在公网,你无法直接嗅探目标服务器的流量,除非你控制了某个网络中间节点(如代理服务器或 ISP)。