Here's the main issues I see with this type of discussion.
OS should always be CentOS if you plan to do anything other than hobby toying around. It's literally that simple, no reason to even fire up a discussion regarding other options when there literally isn't one. The comments here stating otherwise are from people with little to no experience on business code or any type of web app more robust that maybe a blog or crawler service.
Expressing an option for the DB as MongoDB is like telling someone to buy a lexus and never lock the doors. It looks shiny but you won't get to keep it for very long. Postegres and MySQL are standards to follow and have more stability and scaling than anything else out there for "ease of use" DBs.
Web-server is fine with nginx / gunicorn , they work fast , well and very stable. Apache is fine if you want to stay old school and not have feature sets for modern day type of configurations. To each there own unless you want to just hobby build, then it has no relevance at all.
The front end is very specific and opinionated as it is usually per app right. You don't just use Angular for everything because React may do it better or vise versa. For front end , you should always look at the options and check features and configurations for what you are actually trying to do. You might want to put BootStrap / Materialize in the mix as well for framework options on the front end.
Cache is literally Redis 90% of the time in the production world. Nuff said. Varnish...it's ok.
Async, is going to be based on what you are doing just like front end. look at the "system" not the "suggestions of others" so you can get something that works for your application properly instead of "kind of works" or "not at all".
Now the big Back End opinion wars. I get a good laugh at people that protest against any framework other that Django. The reason is I've yet to meet a professional coder who uses Django for business logic. They always have either started wtih Falcon/Flask/Pyramid and scaled up accordingly, or they started on Django and realized the critical flaws and moved to Flask / Pyramid. It's very simple when you think about it, do you want to have bloatware and restrictions, or do you want the speed/minimalist/freedom/scalability of a proper framework meant for things other than wordpress clones. Have I used Django? Yes when I first started hobby coding. Do I use it now? Yes for random prototype things that people want to compare between the frameworks. Business end? Never. Flask and Pyramid dominate the industry and for good reason. You'll get people that will say it's not possible and Django is king, but with little to no backing for it. They will say hey this random site uses it , it must be good. Well if you want to be like a random site then go for it.
In the end you should stick with what works for you. If you are trying to get into a professional settings with a dev team , then you should probably take the above into consideration.
Verification: I'm the ScrumMaster for an Agile Scrum dev team. We run .NET , Java, Python business end code ranging from industrial / enterprise for in house all the way down to mobile tools for customers. Take that what you will all with a grain of a salt. I'm thankful to have the experience and ability to share the industry happenings with others so hopefully this helps in your list building.