---
canonical: "https://www.jsolly.com/blog/Migrating-from-apache-to-Nginx-Gunicorn/"
title: "Switching to Nginx and Gunicorn: Updating My Blog's Web Server"
description: "Upgrade your server and application with this step-by-step guide on migrating from Apache to Nginx and Gunicorn. Improve website speed and security!"
author: "John Solly"
published: "2022-06-29T03:30:36.340Z"
updated: "2024-11-06T13:38:17.835Z"
---

<a id="switching-to-nginx-and-gunicorn-updating-my-blogs-web-server"></a>

# Switching to Nginx and Gunicorn: Updating My Blog's Web Server

![Meta Image](https://d1d7p8ufhgz4ld.cloudfront.net/media/post_metaimgs/gunicorn-logo.png)

When I first created this blog, I used Apache to handle all the web requests and serve static files. With [this PR](https://github.com/jsolly/awesome-django-blog/pull/116) blogthedata.com has a new web server (Nginx) and application server (Gunicorn)!

Here's what I did:

1 - Export blogthedata database from postgres

2 - Shut down existing Ubuntu VM 

3 - Create new Ubuntu VM

4 - Create new DNS A records in Cloudflare to redirect to the new IP address

5 - Follow [this guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-20-04) to install all the components.

6 - Re-run [Certbot](https://certbot.eff.org/) to install new HTTPS certificates

Done!

June 29, 2022 in [Dev Tools](https://www.jsolly.com/blog/category/dev-tools/)

Updated November 6, 2024
