nginx同一端口代理问题


背景:客户为了安全起见,只允许对外服务器仅仅开启80端口。而我们部署的系统包括一个IM模块,使用的xmpp协议。所以就有如下问题。

如下是nginx的access log:


 192.168.1.113 - - [19/Mar/2015:17:08:42 +0800] "<?xml version=\221.0\x22?>" 400 172 "-" "-"
192.168.1.113 - - [19/Mar/2015:17:08:46 +0800] "<?xml version=\221.0\x22?>" 400 172 "-" "-"

请问:nginx配置文件该如何写?

================

如下这些情况的都会处理。仅仅上面这种情况时第一次遇见。


 192.168.1.113 - - [19/Mar/2015:17:08:42 +0800] "POST /http-bind HTTP/1.1" 400 172 "-" "-"
192.168.1.113 - - [19/Mar/2015:17:08:46 +0800] "POST /login HTTP/1.1" 400 172 "-" "-"

nginx_proxy nginx

西瓜幽幽子 11 years ago

为什么只开放80端口。就算是nginx转发……那不也是直接访问了XMPP?nginx有做什么鉴权验证吗?

另外,nginx支持tcp proxy

联合国女厕 answered 11 years ago

nginx 又不支持 XMPP 协议。你用 BOSH 吧,但是需要客户端支持。

你也可以写个 nginx 模块,当请求是 XML 时转发到后端 XMPP 服务器。当然另一种方案是在 nginx 前边加个自己写的代码程序,看请问转给 nginx 或者 XMPP。

ぁD日D花 answered 11 years ago

Your Answer