我正在开发一个 HTTP 服务器,它应该只允许每个用户有一定数量的连接。我如何优雅地告诉用户n
不允许多个连接。我尝试n+1
用 403回答th 请求,但显然这会杀死整个下载。(至少有DownThemAll!)
我的公司正在创建演示软件。使用时,演示者通过启用 HTTPS 的网站登录以发送文本、文档、身份验证令牌等。
在以下情况下如何启用 HTTPS 通信:
对于那些感兴趣的人,我正在使用 C# 控件 Httplistener 和 PowerShell。
我的一些研究:
我知道在某些情况下,我们会在服务器上遇到繁重的 http(s) 负载,我们应该使用负载均衡器在多个后端服务器之间分配负载。
但我在这里有一个困惑!假设有太多用户(比如 100,000)试图同时访问example.com:80
负载均衡器(例如 Apachemod_proxy_balancer
或任何其他独立的负载均衡器)想要在多个后端服务器之间分配此负载,但所有流量仍然必须通过前端服务器传递,这会给该服务器带来大量流量,即使所有请求在后端服务器解析,前端服务器仍然必须管理它们(假设在最好的情况下它必须为每个请求创建一个唯一的线程,这会导致该服务器在创建 100,000 个线程后立即崩溃!)。
现在我的问题(这对专家来说可能听起来很有趣!)是负载均衡器如何处理这种情况?换句话说,前端服务器如何能够直接在客户端和后端服务器之间建立链接,而不必承受如此重的网络负载?(我知道在这种情况下我们不能将后端服务器称为真正的“后端”!但假设现在可以)这种情况是否需要任何特定于应用程序的更改?(例如,为了简单地将带有 httpLocation
标头的客户端重定向到其他服务器)
来自维基百科上的代理服务器:
\n\n\n代理服务器可以驻留在用户的本地计算机上,或者位于用户计算机和 Internet 上的目标服务器之间的任意点。传递未修改的请求和响应的代理服务器通常称为网关,有时也称为隧道代理。转发代理是面向 Internet 的代理,用于从各种来源(大多数情况下是 Internet 上的任何位置)检索数据。反向代理通常是面向内部的代理,用作前端来控制和保护对专用网络上服务器的访问。反向代理通常还执行负载平衡、身份验证、解密和缓存等任务。
\n
来自David Gourley 和 Brian Totty 的HTTP:权威指南:
\n\n严格来说,代理连接两个或多个使用相同协议的应用程序,而网关则连接两个或多个使用不同协议的应用程序。网关充当\xe2\x80\x9c协议转换器,\xe2\x80\x9d\n允许客户端完成与服务器的事务,即使客户端和服务器使用不同的协议。
\n图 6-2 说明了代理和网关之间的区别:
\n\n
\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由于浏览器和服务器实现不同版本的 HTTP,\n代理通常会执行一定量的协议转换。商业代理服务器实现网关功能以支持 SSL 安全协议、SOCKS 防火墙、FTP 访问和基于 Web …
我正在使用全新安装的 Centos 5.5。我已经安装了 Node 并且可以正常工作(我只是使用 Node —— 没有 apache 或 nginx。),但我不知道如何在端口 80 上创建一个简单的服务器。Node 正在运行并且正在侦听端口 80。我我只是使用演示应用程序:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(80, "x.x.x.x");
console.log('Server listening to port 80.');
Run Code Online (Sandbox Code Playgroud)
当我访问我的 IP 时,它不起作用。我使用 ifconfig 获得了我的 ipaddress。我尝试了不同的端口。所以一定有我遗漏的东西。
我需要在我的服务器上配置什么才能使其工作?我想在不安装 apache 或 nginx 的情况下执行此操作。
卢克
编辑——好的,我安装了 nginx 并启动它,看看它是否与 node 相关,我没有看到它的欢迎页面。所以它肯定与服务器有关。
我是否通过运行:ifconfig然后读取eth0下的inet addr 来正确检索 IP 地址?
http-server ×5
cgi ×1
connection ×1
gateway ×1
high-load ×1
http ×1
load-balance ×1
nginx ×1
node.js ×1
port-80 ×1
proxy ×1