Skip to content

Instantly share code, notes, and snippets.

@schubert
Created July 27, 2012 19:05
Show Gist options
  • Save schubert/3189857 to your computer and use it in GitHub Desktop.
Save schubert/3189857 to your computer and use it in GitHub Desktop.
nginx config trick to force specific return code for testing
$ curl -I http://some.local.app.dev/?return=402
HTTP/1.1 402 Payment Required
Server: nginx/1.2.2
Date: Fri, 27 Jul 2012 19:08:19 GMT
Content-Type: text/html
Content-Length: 182
Connection: keep-alive
Keep-Alive: timeout=10
if ($args ~ "return=(\d\d\d)") {
set $p $1;
}
# http://www.iana.org/assignments/http-status-codes/http-status-codes.xml
if ($p ~ 100 ) { return 100; }
if ($p ~ 101 ) { return 101; }
if ($p ~ 102 ) { return 102; }
if ($p ~ 200 ) { return 200; }
if ($p ~ 201 ) { return 201; }
if ($p ~ 202 ) { return 202; }
if ($p ~ 203 ) { return 203; }
if ($p ~ 204 ) { return 204; }
if ($p ~ 205 ) { return 205; }
if ($p ~ 206 ) { return 206; }
if ($p ~ 207 ) { return 207; }
if ($p ~ 208 ) { return 208; }
if ($p ~ 226 ) { return 226; }
if ($p ~ 300 ) { return 300; }
if ($p ~ 301 ) { return 301; }
if ($p ~ 302 ) { return 302; }
if ($p ~ 303 ) { return 303; }
if ($p ~ 304 ) { return 304; }
if ($p ~ 305 ) { return 305; }
if ($p ~ 306 ) { return 306; }
if ($p ~ 307 ) { return 307; }
if ($p ~ 308 ) { return 308; }
if ($p ~ 400 ) { return 400; }
if ($p ~ 401 ) { return 401; }
if ($p ~ 402 ) { return 402; }
if ($p ~ 403 ) { return 403; }
if ($p ~ 404 ) { return 404; }
if ($p ~ 405 ) { return 405; }
if ($p ~ 406 ) { return 406; }
if ($p ~ 407 ) { return 407; }
if ($p ~ 408 ) { return 408; }
if ($p ~ 409 ) { return 409; }
if ($p ~ 410 ) { return 410; }
if ($p ~ 411 ) { return 411; }
if ($p ~ 412 ) { return 412; }
if ($p ~ 413 ) { return 413; }
if ($p ~ 414 ) { return 414; }
if ($p ~ 415 ) { return 415; }
if ($p ~ 416 ) { return 416; }
if ($p ~ 417 ) { return 417; }
if ($p ~ 422 ) { return 422; }
if ($p ~ 423 ) { return 423; }
if ($p ~ 424 ) { return 424; }
if ($p ~ 425 ) { return 425; }
if ($p ~ 426 ) { return 426; }
if ($p ~ 427 ) { return 427; }
if ($p ~ 428 ) { return 428; }
if ($p ~ 429 ) { return 429; }
if ($p ~ 430 ) { return 430; }
if ($p ~ 431 ) { return 431; }
if ($p ~ 500 ) { return 500; }
if ($p ~ 501 ) { return 501; }
if ($p ~ 502 ) { return 502; }
if ($p ~ 503 ) { return 503; }
if ($p ~ 504 ) { return 504; }
if ($p ~ 505 ) { return 505; }
if ($p ~ 506 ) { return 506; }
if ($p ~ 507 ) { return 507; }
if ($p ~ 508 ) { return 508; }
if ($p ~ 509 ) { return 509; }
if ($p ~ 510 ) { return 510; }
if ($p ~ 511 ) { return 511; }
if ($args ~ "return=(\d\d\d)") {
set $p $1;
}
# http://www.iana.org/assignments/http-status-codes/http-status-codes.xml
<% [(100..102), (200..208), [226], (300..308), (400..417), (422..431), (500..511)].each do |range| %>
<% range.each do |code| %>
if ($p ~ <%= code %> ) { return <%= code %>; }
<% end %>
<% end %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment