WordPress

How to Configure Single and Multisite WordPress Settings with Nginx

Running WordPress with Nginx offers excellent performance and flexibility. Whether you’re managing a single WordPress site or a WordPress Multisite network, proper configuration is essential for SEO, speed, and stability.

In this guide, we’ll walk through how to configure WordPress site settings on Nginx — covering both single-site and multisite setups on a Linux server.


🔧 Prerequisites

Before you begin, make sure you have:

  • Ubuntu 22.04 or newer (or any modern Linux distro)
  • Nginx installed (sudo apt install nginx)
  • PHP 8.x and required extensions
  • MySQL or MariaDB
  • WordPress files downloaded

🗂️ Folder Structure Overview

Let’s assume the following structure:

cssCopyEdit/var/www/html/example.com     → Single site
/var/www/html/multisite.com   → Multisite network

🌐 Step 1: Configure Nginx for a Single WordPress Site

Create a new Nginx config file:

bashCopyEditsudo nano /etc/nginx/sites-available/example.com

Paste the following configuration:

nginxCopyEditserver {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/html/example.com;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; allow all; }

    error_log /var/log/nginx/example.com.error.log;
    access_log /var/log/nginx/example.com.access.log;
}

Enable the site and reload Nginx:

bashCopyEditsudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

🏗️ Step 2: Enable WordPress Multisite Support

Edit wp-config.php:

phpCopyEditdefine( 'WP_ALLOW_MULTISITE', true );

Go to Tools → Network Setup in the WordPress admin and choose subdomains or subdirectories.

After setting up the network, WordPress will give you new rules to add to .htaccess. But for Nginx, we use the equivalent rules:


🌐 Step 3: Configure Nginx for WordPress Multisite (Subdirectory)

nginxCopyEditserver {
    listen 80;
    server_name multisite.com www.multisite.com;
    root /var/www/html/multisite.com;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ ^/files/(.*) {
        try_files /wp-content/blogs.dir/$blog_id/files/$1 /wp-includes/ms-files.php?file=$1;
        access_log off; log_not_found off; expires max;
    }

    location ~ ^/wp-admin/network {
        index index.php;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

    error_log /var/log/nginx/multisite.com.error.log;
    access_log /var/log/nginx/multisite.com.access.log;
}

⚠️ For subdomain-based multisites, you must configure wildcard DNS (*.multisite.com) and ensure Nginx handles those requests properly.


🛡️ Security Tips

  • Use Let’s Encrypt with Certbot to enable HTTPS: bashCopyEditsudo apt install certbot python3-certbot-nginx sudo certbot --nginx
  • Disable unnecessary PHP functions in php.ini
  • Add security headers in Nginx: nginxCopyEditadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff";

🧠 Final Thoughts

Setting up WordPress with Nginx is a great way to maximize performance and control. Whether you’re running a simple blog or a multisite network, careful Nginx configuration ensures stability and speed.

For best results, pair it with caching plugins, CDN support, and regular backups.


🌿 Green Host: Optimized WordPress Hosting

At GreenHost, we offer high-performance WordPress hosting environments powered by Nginx, pre-configured for both single-site and multisite setups. Enjoy blazing speed, top-tier security, and expert support tailored to your growth.