代理服务器和网关服务器有什么区别?

Tim*_*Tim 5 nginx proxy gateway cgi http-server

来自维基百科上的代理服务器

\n
\n

代理服务器可以驻留在用户的本地计算机上,或者位于用户计算机和 Internet 上的目标服务器之间的任意点。传递未修改的请求和响应的代理服务器通常称为网关,有时也称为隧道代理。转发代理是面向 Internet 的代理,用于从各种来源(大多数情况下是 Internet 上的任何位置)检索数据。反向代理通常是面向内部的代理,用作前端来控制和保护对专用网络上服务器的访问。反向代理通常还执行负载平衡、身份验证、解密和缓存等任务。

\n
\n

来自David Gourley 和 Brian Totty 的HTTP:权威指南:

\n
\n

严格来说,代理连接两个或多个使用相同协议的应用程序,而网关则连接两个或多个使用不同协议的应用程序。网关充当\xe2\x80\x9c协议转换器,\xe2\x80\x9d\n允许客户端完成与服务器的事务,即使客户端和服务器使用不同的协议。

\n

图 6-2 说明了代理和网关之间的区别:

\n
    \n
  • 图 6-2a 中的中间设备是 HTTP 代理,因为代理与客户端和服务器都使用 HTTP 协议。

    \n
  • \n
  • 图 6-2b 中的中间设备是 HTTP/POP 网关,\n因为它将 HTTP 前端与 POP 电子邮件后端联系在一起。网关\n将 Web 事务转换为适当的 POP 事务,\n以允许用户通过 HTTP 读取电子邮件。基于网络的电子邮件程序\n例如 Yahoo! Mail 和 MSN Hotmail 是 HTTP 电子邮件网关。

    \n
  • \n
\n

实际上,代理和网关之间的区别很模糊。\n由于浏览器和服务器实现不同版本的 HTTP,\n代理通常会执行一定量的协议转换。商业代理服务器实现网关功能以支持 SSL 安全协议、SOCKS 防火墙、FTP 访问和基于 Web 的应用程序。

\n

代理服务器和网关服务器的区别

\n
\n

网关连接使用相同协议且未经第一源修改的两方,并且连接使用不同协议并由第二源在协议之间进行转换的两方。\xe2\x80\x99t 两个来源中网关的定义是否相互矛盾?

\n

根据其官方在线文档,当代理服务器是 CGI 服务器时,Nginx 可以用作反向代理服务器。反向代理服务器是第一源的代理服务器,它通过第二源连接使用相同协议的两方。Nginx 使用 HTTP 与客户端通信,那么 Nginx 是否也应该使用 HTTP 与 CGI 服务器通信?

\n

Pio*_*asz 3

与 CGI 脚本的通信是使用通用网关接口完成的。这是一种调用约定,其中 HTTP 标头和请求的 URL 通过环境变量传递,而请求数据在stdin上传递。这是本地通信,因为 Web 服务器必须将 CGI 脚本作为同一计算机上的进程运行。

FastCGI是一个细微的变化,其中所有内容都使用流套接字和二进制协议传递到 CGI 脚本。套接字通常是 UNIX 套接字(如此本地),但也可以是常规 TCP/IP 连接。