Full Web Apps with FastAPI Transcripts
Chapter: Course conclusion and review
0:00 After we were happy with our app and we got it built and running, it was time to put it on the Internet,
0:06 and we decided Nginx plus Gunicorn would be a great way to deploy our FastAPI web application. Nginx is by far one of the most popular front
0:15 end web servers that handles things like static files, it handles SSL, and you know,
0:21 upgrades requests to things like HTTP2, all sorts of cool stuff that's happening over there.
0:26 It will be the front line server that our clients actually talk to. But when it comes to running, our Python code, our FastAPI code,
0:34 we're gonna do that, managed by Gunicorn. We already saw that Uvicorn, which comes from Gunicorn, is how we were, we've been running our app so far,
0:43 and we're gonna continue to use that in production, but not just by running it, but by having a bunch of them that Gunicorn can manage.
0:50 So it's gonna spin off 5, 10, who knows how many makes the most sense for your server and the number of requests
0:56 you're getting, but multiple numbers of your process as if you had started it just on
1:01 the command line multiple times. And then when a request comes in, Nginx is gonna figure out where it goes.
1:07 If it's a Python request, it hits Gunicorn and says, hey, drive one of these Uvicorn worker processes that's not busy. Well, this one,
1:16 it's not busy, it can handle a request. Another request comes in, says here, this one's not busy this time. Now then maybe those two are busy,
1:22 another request comes in, it picks this other one this next time. And this is generally how our web application works.
1:28 We saw that setting up Gunicorn to run, we had a special config file to do that as a systemd service. And then we have a special config file to set up
1:39 Nginx, and then we also had a whole script to actually build out the Ubuntu server just the way we wanted it.
1:45 It might be a lot to take in at the beginning, but if you go through it a few times,
1:48 you'll figure out what the important parts are to pay attention to, and the rest, you'll just copy and paste; and remember,
1:54 this script goes there and then we're good to go. Not too bad. So good luck running your app in production.