简体   繁体   中英

Handling POST requests using Apache's mod_proxy

I am currently hosting 2 web applications on the same Apache server. Let's just call, them A and B. I was using JSONP to make cross domain ajax calls from A to B (I needed some data from B). The problem became apparent with this method when my request got too big and GET simply wouldn't work; I needed to use a POST request.

I installed mod_proxy and configured my Apache web server to act as a reverse proxy as illustrated here: http://bit.ly/rpeWJI . This worked beautifully with GET requests, but I am still unable to get POST requests to work properly. Can someone help me?

As a side note, I am using the Pylons web framework for my web applications.

Do you have mod_security enabled in Apache?

I came across your post while debugging why HTTP POST requests were failing against my reverse proxy. (They were receiving a 403 response).

It turned our the server was using mod_security with OWASP settings. Monitoring the error log and then adding application/json to the list of approved types solved it.

I also had to allow PUT requests for similar reasons.

May I suggest using nginx instead of Apache. Here is an example config:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM