I can stop nginx server using
nginx -s stop or
nginx -s quit.
What is the difference?
SIGQUIT causes nginx to break if it listens on Unix domain sockets. It will fail to clean up sockets, then immediately terminate on next invocation because it can't create sockets at paths which already exist.
SIGTERM causes nginx to shut down into a consistent state from which it can start back up. The daemon removes any Unix domain sockets, leaves all caches in a usable state, and so forth.
You basically never want to use QUIT.