2011-07-06 56 views
2

我目前在同一个Apache服务器上托管2个Web应用程序。我们只需调用它们A和B.我使用JSONP从A到B进行跨域ajax调用(我需要从B获得一些数据)。当我的请求太大而GET不起作用时,这个问题就变得很明显了。我需要使用POST请求。使用Apache的mod_proxy处理POST请求

我安装了mod_proxy,并将我的Apache Web服务器配置为充当反向代理,如下所示:http://bit.ly/rpeWJI。这与GET请求很好地工作,但我仍然无法让POST请求正常工作。有人能帮我吗?

作为一个方面说明,我为我的Web应用程序使用了Pylons Web框架。

+0

Ack!对不起,这篇文章.....我有一个不好的网址电话。程序员错误。 – Mark

+0

那么,你是否能够仅使用Apache进行POST?你是怎么做到的?谢谢。 – split19

+1

嗨spli19,我今天刚刚看到你的帖子。这是去年。我最近不得不再次做这种行为,并意识到实际上有一种更容易和更好的方式来与POST请求做到这一点。我强烈建议使用请求模块向其他服务器发送发布请求。请求模块可以在这里找到,它使用起来非常简单:http://docs.python-requests.org/en/latest/index.html – Mark

回答

1

我可以建议使用nginx而不是Apache。 Here是一个配置示例:

http { 
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m 
             inactive=24h max_size=1g; 
    server { 
     location/{ 
      proxy_pass    http://1.2.3.4; 
      proxy_set_header  Host $host; 
      proxy_cache   STATIC; 
      proxy_cache_valid  200 1d; 
      proxy_cache_use_stale error timeout invalid_header updating 
            http_500 http_502 http_503 http_504; 
     } 
    } 
} 
+0

啊,谢谢你。我会考虑为我的下一个Web应用程序。 – Mark

+0

我一直想尝试nginx一段时间。看起来非常整齐。 – Mark

1

您是否在Apache中启用了mod_security?

我在调试为什么HTTP POST请求对我的反向代理失败时遇到了您的文章。 (他们正在收到403回应)。

它使我们的服务器使用mod_security与OWASP设置。监视错误日志,然后将application/json添加到已批准类型的列表中即可解决它。

由于类似的原因,我还必须允许PUT请求。