Конфигурация на отдельном порту

Это самая легкая в настройке конфигурация совместного использования nginx и Apache. Они работают на разных портах/IP и никак не связаны между собой. Адрес веб-сервера, который будет обслуживать запрос, содержится в URL запроса.

Главная задача в этой конфигурации — обозначить список расширений файлов, которые nginx может передавать посетителю. Если посетитель запросит какой-нибудь скрипт у Apache, то получит результат выполнения этого скрипта. А если у nginx — получит исходный код. Чтобы этого избежать, включайте в список расширений только статичные файлы: картинки, таблицы стилей CSS и т.п.

Если у вас нет свободных IP, настройте nginx на отдельный порт:

server {
    listen 8080;
    server_name example.com;
    location ~* \.(jpg|gif|png|css|js)$ {
        root /var/www/example.com;
    }
}

Если вы можете выделить отдельный IP, блок server будет выглядеть так:

server {
    listen 192.168.1.1:80;
    server_name static.example.com;
    location ~ "\.(jpg|gif|png|css|js)$" {
        root /var/www/example.com;
    }
}

Во втором случае не забудьте указать Apache, чтобы он не использовал этот IP. За это отвечает параметр Listen.