2011-10-19 78 views
0

我目前的服务器设置由Apache和Ejabberd组成。 Apache充当ejabberd请求的代理。Apache + Nginx代理+ ejabberd

现在我已经包含了另一个级别,其中Nginx作为apache前的代理映像服务器。 所以Nginx会默认处理所有请求,并将所有的php请求转发给apache。

现在我坚持ejabberd轮询,因为它现在首先与nginx通信而不是apache,所以我不断收到502错误的请求。

我该怎么处理这种情况。

我厌倦了这样的nginx的,但它不工作

proxy_set_header Host $http_host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_pass http://localhost:5280; 

回答

1

我是不是设置了一个,但我有同样的设置目前在生产环境中运行。我们使用上面发布的相同设置,并添加这三个。

proxy_buffering off; 
tcp_nodelay on; 
keepalive_timeout 55; 

我认为TCP_NODELAY是作为连接意味着要保持活跃的关键之一。

如果这不能解决它,请提供来自nginx的错误日志。

+0

我不断收到我的日志中的这些错误的负载“上游发送太大头,而从上游读取响应头” – user160108

+0

[This question](http://stackoverflow.com/questions/2307231/how-to-avoid- nginx-upstream-sent-too-big-header-errors)提出了三种不同的解决方案。它们都涉及设置更高的缓冲区大小。 –