Skip to content

Instantly share code, notes, and snippets.

@cornerot
Forked from widnyana/dump.sh
Created May 13, 2020 11:14
Show Gist options
  • Save cornerot/442fb44fb6194592bc0cf64da27a8e53 to your computer and use it in GitHub Desktop.
Save cornerot/442fb44fb6194592bc0cf64da27a8e53 to your computer and use it in GitHub Desktop.
Dump Current Nginx Config

you need to install gdb (GNU Debugger)

You should get something like "Binary file mem_086cb000 matches". Open this file in editor, search for config (e.g. "worker_connections" directive), copy&paste. Profit!

Update: This method isn't entirely reliable. It's based on assumption that nginx process will read configuration and don't overwrite/reuse this memory area later. Master nginx process gives us best chances for that I guess.

# Set pid of nginx master process here
pid=8192
# generate gdb commands from the process's memory mappings using awk
cat /proc/$pid/maps | awk '$6 !~ "^/" {split ($1,addrs,"-"); print "dump memory mem_" addrs[1] " 0x" addrs[1] " 0x" addrs[2] ;}END{print "quit"}' > gdb-commands
# use gdb with the -x option to dump these memory regions to mem_* files
gdb -p $pid -x gdb-commands
# look for some (any) nginx.conf text
grep worker_connections mem_*
grep server_name mem_*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment