Example, how to remove argument from http request.
Replace requests like:
DELETE /v1/path/FILE?multipart-manifest=delete HTTP/1.1"
with:
DELETE /v1/path/FILE?
(Openstack Swift API example)
| version: "3.7" | |
| services: | |
| #service: | |
| # . . . | |
| # networks: | |
| # default: | |
| # fakesite: | |
| # volumes: | |
| # - ./proxy/certs:/certs | |
| # entrypoint: /bin/sh | |
| # command: | |
| # - -c | |
| # - | | |
| # cp /certs/server.crt /usr/local/share/ca-certificates/ && update-ca-certificates | |
| # exec sh /entrypoint.sh | |
| patch-proxy: | |
| image: nginx:alpine | |
| networks: | |
| fakesite: | |
| aliases: | |
| - api.example.com | |
| expose: | |
| - 80 | |
| - 443 | |
| volumes: | |
| - ./proxy.conf:/etc/nginx/conf.d/default.conf | |
| - ./certs/api.example.com.crt:/etc/nginx/certs/server.crt | |
| - ./certs/api.example.com.key:/etc/nginx/certs/server.key | |
| networks: | |
| fakesite: |
| #!/usr/bin/env sh | |
| openssl req -x509 \ | |
| -newkey rsa:2048 -nodes -keyout api.example.com.key \ | |
| -days 365 -out api.example.com.crt \ | |
| -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=api.example.com" |
| map $request_uri $new_req_uri { | |
| default "$uri$is_args$args"; | |
| ~^(.*[&?])multipart-manifest(?:&|=&|=[^&\s]*&?)(\S*)$ "$1$2"; | |
| } | |
| # use real resolver for connect to real upstream | |
| resolver 8.8.8.8 ipv6=off; | |
| log_format patch '$remote_addr - $remote_user [$time_local] "$request" -> "$new_req_uri" ' | |
| '$status $body_bytes_sent "$http_referer" ' | |
| '"$http_user_agent" "$http_x_forwarded_for"'; | |
| access_log /var/log/nginx/access.log patch; | |
| server { | |
| listen 80; | |
| listen 443 default_server ssl; | |
| ssl_certificate /etc/nginx/certs/server.crt; | |
| ssl_certificate_key /etc/nginx/certs/server.key; | |
| location / { | |
| set $target $scheme://$host$new_req_uri; | |
| proxy_pass $target; | |
| proxy_pass_request_headers on; | |
| } | |
| } |
Example, how to remove argument from http request.
Replace requests like:
DELETE /v1/path/FILE?multipart-manifest=delete HTTP/1.1"
with:
DELETE /v1/path/FILE?
(Openstack Swift API example)