Bird
Raised Fist0
Nginxdevops~5 mins

Request/response transformation in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is request transformation in nginx?
Request transformation in nginx means changing parts of the incoming client request before sending it to the backend server. This can include modifying headers, URLs, or request bodies.
Click to reveal answer
intermediate
How can nginx modify response headers?
Nginx can modify response headers using the proxy_set_header directive for requests or the add_header directive for responses, allowing control over headers sent back to the client.
Click to reveal answer
intermediate
Which nginx module is commonly used for advanced request and response transformations?
The ngx_http_sub_module allows simple text substitutions in response bodies, and the ngx_http_rewrite_module helps rewrite URLs and headers.
Click to reveal answer
beginner
What does the proxy_set_header directive do?
It sets or changes headers in the request sent from nginx to the backend server, allowing you to add or modify headers before forwarding the request.
Click to reveal answer
intermediate
How can you rewrite a URL path in nginx before proxying?
You can use the rewrite directive inside a location block to change the URL path, for example: rewrite ^/oldpath/(.*)$ /newpath/$1 break;.
Click to reveal answer
Which nginx directive is used to change request headers before sending to the backend?
Asub_filter
Badd_header
Crewrite
Dproxy_set_header
What does the nginx add_header directive do?
AAdds or modifies response headers
BRewrites URL paths
CModifies request headers
DSubstitutes text in response body
Which module allows simple text replacement in nginx response bodies?
Angx_http_rewrite_module
Bngx_http_sub_module
Cngx_http_proxy_module
Dngx_http_headers_module
How do you rewrite a URL path in nginx?
AUsing rewrite directive
BUsing add_header
CUsing proxy_set_header
DUsing sub_filter
What happens if you use proxy_set_header Host $host; in nginx?
AAdds a new header named Host with value $host
BRemoves the Host header
CSets the Host header to the original client host
DDoes nothing
Explain how nginx can transform both incoming requests and outgoing responses.
Think about directives like proxy_set_header, rewrite, add_header, and sub_filter.
You got /4 concepts.
    Describe a simple nginx configuration snippet that rewrites a URL path and changes a request header before proxying.
    Use rewrite to change URL, proxy_set_header to modify headers, and proxy_pass to forward.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of request/response transformation in nginx?
      easy
      A. To block all incoming requests
      B. To increase the server's hardware capacity
      C. To change the server's IP address automatically
      D. To modify data passing through nginx for better communication

      Solution

      1. Step 1: Understand request/response transformation

        This process changes data in requests or responses to improve how clients and servers communicate.
      2. Step 2: Identify the main goal in nginx context

        nginx uses this to modify headers, URLs, or content to suit needs, not hardware or blocking.
      3. Final Answer:

        To modify data passing through nginx for better communication -> Option D
      4. Quick Check:

        Transformation means changing data flow [OK]
      Hint: Transformation means changing data in requests or responses [OK]
      Common Mistakes:
      • Confusing transformation with hardware upgrades
      • Thinking it blocks requests instead of modifying them
      • Assuming it changes server IP automatically
      2. Which nginx directive is used to modify request headers before passing to the backend?
      easy
      A. add_header
      B. proxy_set_header
      C. rewrite
      D. gzip_disable

      Solution

      1. Step 1: Identify directives for header modification

        proxy_set_header changes headers sent to the backend server.
      2. Step 2: Differentiate from other directives

        add_header adds headers to responses, rewrite changes URLs, gzip_disable disables compression.
      3. Final Answer:

        proxy_set_header -> Option B
      4. Quick Check:

        Request header modification = proxy_set_header [OK]
      Hint: Use proxy_set_header to change request headers [OK]
      Common Mistakes:
      • Using add_header which affects response headers
      • Confusing rewrite with header modification
      • Trying gzip_disable for headers
      3. Given this nginx config snippet, what will be the response header X-Transformed value?
      location / {
        proxy_pass http://backend;
        proxy_set_header X-Original $http_x_original;
        add_header X-Transformed "Yes";
      }
      medium
      A. Yes
      B. $http_x_original
      C. No
      D. X-Original

      Solution

      1. Step 1: Understand add_header directive effect

        add_header adds or modifies response headers sent to the client; here it sets X-Transformed to "Yes".
      2. Step 2: Differentiate proxy_set_header role

        proxy_set_header modifies request headers sent to backend, not response headers.
      3. Final Answer:

        Yes -> Option A
      4. Quick Check:

        add_header sets response header = Yes [OK]
      Hint: add_header controls response headers, proxy_set_header controls request headers [OK]
      Common Mistakes:
      • Confusing request and response headers
      • Expecting variable names as header values
      • Ignoring add_header effect
      4. You want to modify the response body in nginx but changes don't appear. What is the likely cause?
      medium
      A. gzip compression is enabled, preventing body modification
      B. proxy_pass directive is missing
      C. add_header directive is used incorrectly
      D. server block is missing listen directive

      Solution

      1. Step 1: Understand response body modification requirements

        Modifying response body requires disabling gzip compression because compressed data can't be changed easily.
      2. Step 2: Identify common misconfigurations

        If gzip is enabled, changes won't show; proxy_pass or listen missing causes other errors, add_header affects headers only.
      3. Final Answer:

        gzip compression is enabled, preventing body modification -> Option A
      4. Quick Check:

        Disable gzip to modify response body [OK]
      Hint: Disable gzip to allow response body changes [OK]
      Common Mistakes:
      • Ignoring gzip compression effect
      • Confusing header directives with body changes
      • Assuming missing proxy_pass causes this issue
      5. You want to rewrite incoming URLs from /old-path/ to /new-path/ and add a response header X-Updated: true. Which nginx config snippet correctly does both?
      hard
      A. location /old-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 permanent; add_header X-Updated true; proxy_pass http://backend; }
      B. location /old-path/ { proxy_pass http://backend; add_header X-Updated true; rewrite ^/old-path/(.*)$ /new-path/$1 break; }
      C. location /old-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 break; add_header X-Updated true; proxy_pass http://backend; }
      D. location /new-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 break; add_header X-Updated true; proxy_pass http://backend; }

      Solution

      1. Step 1: Choose correct location and rewrite usage

        Rewrite must be inside location matching /old-path/ to rewrite URLs internally with 'break' to stop processing.
      2. Step 2: Add response header and proxy_pass correctly

        add_header adds header to response; proxy_pass forwards request to backend after rewrite.
      3. Step 3: Identify incorrect options

        The config
        location /old-path/ {
          proxy_pass http://backend;
          add_header X-Updated true;
          rewrite ^/old-path/(.*)$ /new-path/$1 break;
        }
        places rewrite after proxy_pass (ignored). Configs using location /new-path/ have the wrong location. Configs with permanent cause redirects, not internal rewrites.
      4. Final Answer:

        location /old-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 break; add_header X-Updated true; proxy_pass http://backend; } -> Option C
      5. Quick Check:

        Internal rewrite + header + proxy_pass = location /old-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 break; add_header X-Updated true; proxy_pass http://backend; } [OK]
      Hint: Use rewrite with break inside correct location before proxy_pass [OK]
      Common Mistakes:
      • Using permanent instead of break for internal rewrite
      • Placing rewrite after proxy_pass
      • Using wrong location block for rewrite
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard