Ask HN: Is my terminology correct?

1 points by paulasmith ↗ HN
I'm building out a website with the following setup:

Client <--> mysite.com <--> Nginx <--> Flask (Python) Website <--> DB

Where Nginx (Machine #1) either serves a static resource (js, css, etc...), or reverse proxies the request to my Flask application (Machine #2) which does any necessary communications with the database (Machine #3), and returns whatever html content was requested. Reason for this is because Nginx is great for serving static resources so I wanted to put that in front of my Python code.

Question: How do I classify them?

Is it: Nginx - Web Server, Flask - App Server, MySQL - DB Server

or: Nginx - Web Server, Flask - Web Server, MySQL - DB Server

or: Nginx - Proxy Server, Flask - Web Server, MySQL - DB Server

1 comment

[ 3.6 ms ] story [ 11.9 ms ] thread
Nginx is the web server which is reverse proxying to some other server that is running your Flask app. Flask is the web framework. MySQL is the database which may or may not run on a separate database server. Somebody might have a correction or two though.