| # Gunicorn configuration file | |
| # --- Server Socket --- | |
| # Bind to all network interfaces on port 8000. | |
| # This is a good default for containerized environments. | |
| bind = "0.0.0.0:8000" | |
| # --- Worker Processes --- | |
| # The number of worker processes for handling requests. | |
| # A common recommendation is (2 * number_of_cpus) + 1. | |
| # For a 2 CPU container, this defaults to 5 workers. | |
| workers = 5 | |
| # The type of worker to use. For an asyncio application like FastAPI, | |
| # we use the Uvicorn worker class. | |
| worker_class = "uvicorn.workers.UvicornWorker" | |
| # The maximum number of simultaneous clients that a single worker can handle. | |
| # This is a good starting point for I/O-bound applications. | |
| worker_connections = 1000 | |
| # The maximum number of requests a worker will process before restarting. | |
| # This can help prevent memory leaks. | |
| max_requests = 2048 | |
| # A random jitter to the max_requests setting to prevent all workers | |
| # from restarting at the same time. | |
| max_requests_jitter = 512 | |
| # --- Logging --- | |
| # The level of logging. | |
| loglevel = "info" | |
| # The location of the access log. "-" means log to stdout. | |
| accesslog = "-" | |
| # The location of the error log. "-" means log to stderr. | |
| errorlog = "-" | |
| # --- Process Naming --- | |
| # A base to use with setproctitle to change the way Gunicorn processes are | |
| # named in the process table. This affects things like `ps` and `top`. | |
| proc_name = "fastapi_reverse_proxy" |