问题描述
背景:客户为了安全起见,只允许对外服务器仅仅开启80端口。而我们部署的系统包括一个IM模块,使用的xmpp协议。所以就有如下问题。
如下是nginx的access log:
192.168.1.113 - - [19/Mar/2015:17:08:42 +0800] '<?xml version=221.0x22?>' 400 172 '-' '-'192.168.1.113 - - [19/Mar/2015:17:08:46 +0800] '<?xml version=221.0x22?>' 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 '-' '-'
问题解答
回答1:nginx 又不支持 XMPP 协议。你用 BOSH 吧,但是需要客户端支持。
你也可以写个 nginx 模块,当请求是 XML 时转发到后端 XMPP 服务器。当然另一种方案是在 nginx 前边加个自己写的代码程序,看请问转给 nginx 或者 XMPP。
回答2:为什么只开放80端口。就算是nginx转发……那不也是直接访问了XMPP?nginx有做什么鉴权验证吗?
另外,nginx支持tcp proxy