Обработка POST-запросов с использованием Apache mod_proxy - PullRequest
2 голосов
/ 06 июля 2011

В настоящее время я размещаю 2 веб-приложения на одном сервере Apache. Давайте просто позвоним им A и B. Я использовал JSONP для выполнения междоменных вызовов ajax из A в B (мне нужны были данные из B). Проблема стала очевидной с этим методом, когда мой запрос стал слишком большим и GET просто не работал; Мне нужно было использовать запрос POST.

Я установил mod_proxy и настроил свой веб-сервер Apache для работы в качестве обратного прокси-сервера, как показано здесь: http://bit.ly/rpeWJI. Это прекрасно работало с запросами GET, но я все еще не могу заставить запросы POST работать должным образом. Кто-нибудь может мне помочь?

В качестве дополнительного примечания я использую веб-фреймворк Pylons для своих веб-приложений.

Ответы [ 2 ]

1 голос
/ 09 марта 2015

У вас включена защита mod_security в Apache?

Я наткнулся на ваше сообщение во время отладки, почему HTTP-запросы POST не выполнялись для моего обратного прокси-сервера. (Они получали ответ 403).

Оказалось, что наш сервер использует mod_security с настройками OWASP. Мониторинг журнала ошибок и последующее добавление application/json в список разрешенных типов решило его.

Мне также пришлось разрешить PUT запросов по аналогичным причинам.

0 голосов
/ 06 июля 2011

Могу ли я предложить использовать nginx вместо Apache. Здесь - пример конфигурации:

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;
        }
    }
}
...