2011-07-06 16 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!このポストに申し訳ありません.....私は悪いURLの呼び出しを持っていた。プログラマーエラー。 – Mark

+0

ApacheだけでPOSTを動作させることができましたか?どうやってやったの?ありがとう。 – split19

+1

こんにちはspli19、私はあなたの記事を今日見ました。これは昨年だった。私は最近、この種の振る舞いをもう一度やり直さなければならず、実際にはPOST要求でこれを行う方がはるかに簡単で、より良い方法であることに気付きました。リクエストモジュールを使用して別のサーバーに投稿リクエストを行うことを強くお勧めします。リクエストモジュールはここで見つけることができます。使い方はとても簡単です:http://docs.python-requests.org/ja/latest/index.html – Mark

答えて

1

Apacheの代わりにnginxを使用することをおすすめします。 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の応答を受けていた)。

私たちのサーバーは、OWASP設定でmod_securityを使用していました。エラーログを監視し、application/jsonを承認されたタイプのリストに追加して解決しました。

同様の理由でPUTリクエストも許可する必要がありました。

関連する問題