服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如何通过单个端口处理encryption和未encryption的http连接

请看下面的图表。 替代文字http://i30.tinypic.com/8wk4tt.png 这个怎么工作? 当远程请求http:// myhost.com:8080/*时,请求应该被转发到监听回送接口的8008端口的http服务器。 这是简单的部分。 当远程用户请求http:// myhost.com:8080/specialurl … 充当应用程序级别网关的程序应该能够将连接升级到encryption会话( 不更改端口 ) 在与远程浏览器build立encryption会话之后,它应该将请求转发到C程序,该程序侦听回送接口的8000端口 我的问题是 : 你有没有在生产环境中部署这样的解决scheme? 如果你有… 你用什么产品作为应用程序网关? 你能提供一个configuration例子吗? 硬限制 : 我没有防火墙的控制权 ,通过它我可以获得外部stream量进入内部服务器的唯一端口是8080.端口号是无关紧要的,只是有一个端口在防火墙级别打开,转发传入stream量到内部服务器。 内部服务器必须运行Linux(目前正在运行Debian Lenny) 远程用户只需要使用当前的Web浏览器和Internet连接即可访问此服务器。 这意味着通过SSH的反向端口转发不是一个选项。 我需要一个经过生产testing的产品,并且可以很容易地部署。 我不打算开发自己的应用程序网关 (如果是这样的话,我想我会问在堆栈溢出这个问题,而不是在服务器故障问)。 软限制 : 我想避免将Apache作为应用程序网关(尽pipe如果这是唯一可能的select,我愿意这样做) 如果可能的话,应用程序网关应该是一个成熟的开源软件产品。 产品尝试到应用程序网关 (没有成功) nginx的 lighttpd的 磅 相关的RFC RFC2817(… 解释了如何使用HTTP / 1.1中的升级机制来通过现有的TCP连接启动传输层安全性(TLS),这使得不安全和安全的HTTPstream量可以共享相同的已知端口 …) RFC2818(… 描述了如何使用TLS来保护通过Internet的HTTP连接。目前的做法是将HTTP over SSL(TLS的前身)分层,通过使用不同的服务器端口来区分安全stream量和不安全stream量 。 ) 在此先感谢,亚历克斯

nginx + fastCGI + Django – 在发送到客户端的响应中获取数据损坏

我使用FastCGI在nginx后面运行Django。 我发现,在发送给客户端的一些响应中,随机数据损坏发生在响应中间(中间可能是几百字节左右)。 在这一点上,我已经缩小到nginx的FastCGI处理程序或Django的FastCGI处理程序(即可能是一个漏洞的错误),因为这个问题从来没有发生,当我以独立(即runserver )模式运行Django服务器。 它只发生在FastCGI模式。 其他有趣的趋势: 它往往发生在更大的反应。 当客户端第一次login时,会发送一大堆1MB的数据块同步到服务器数据库。 在第一次同步之后,响应要小得多(通常每次几KB)。 腐败似乎总是发生在一开始发送的1MB块上。 当客户端通过LAN连接到服务器(即低延迟,高带宽连接)时,更经常发生这种情况。 这使得我认为在nginx或flup中存在某种竞争条件,并且由于数据速率的提高而加剧。 现在,我不得不通过在响应头中添加一个额外的SHA1摘要来解决这个问题,并且让客户端拒绝头部与主体校验和不匹配的响应,但是这是一种可怕的解决scheme。 有没有其他人经历过这样的事情,或者有任何的指示,以确定是否是错误的flup或nginx,所以我可以提交适当的团队错误? 在此先感谢您的帮助。 注意:我也在lighttpd + FastCGI + Django中发布了一个类似的bug,在这之后: https : //stackoverflow.com/questions/3714489/lighttpd-fastcgi-django-truncated-response-sent-to-client-due-to – 尽pipe这不是一回事(截断与腐败),但它开始看起来像常见的罪魁祸首是flup / Django,而不是Web服务器.. 编辑:我也应该注意我的环境是什么: Mac mini上的OSX 10.6.6 Python 2.6.1(系统) Django 1.3(官方tarball) flup 1.0.2(来自python卵上的flup网站) nginx + ssl 1.0.0(来自Macports) 编辑:为了响应Jerzyk的评论,组装响应的代码path看起来像(编辑为简洁): # This returns an objc NSData object, which is an array.array # when […]