Настройка виртуального хоста Nginx нужна на этапе запуска сервера, который обслуживает сайт или сайты.
Разберем как создается конфигурационный файл при установке Nginx перед Apache и настройке их работы в связке.
Настройка виртуального хоста Nginx — его общий вид (для связки Nginx-Apache)
Типовой конфигурационный файл Nginx при работе в связке с Apache выглядит приведенным ниже образом:
cat /etc/nginx/sites-available/example.com
server {
listen *:80;
server_name example.com;
access_log /var/log/nginx/access.log;
location / {
proxy_pass 127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
root /home/website/example.com/;
}
}
Настройка виртуального хоста Nginx в примере включает кэширование и проксирование на бэкенд (Apache) на адрес 127.0.0.1 и порт 8080.
Если Nginx применяется без Apache и используется для проксирования в php-fpm, nodejs, приложение на python конфигурационный файл будет выглядеть иначе.
Основным отличием будет иной порт для проксирования трафика.
Когда конфигурационный файл создан нужно активировать сайт:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Команда создаст в каталоге /etc/nginx/sites-enabled/ символьную ссылку на /etc/nginx/sites-available/example.com.
Веб-сервер будет считывать все файлы в /etc/nginx/sites-enabled/ (в его настройках по умолчанию есть правило include /etc/nginx/sites-enabled/*;).
Подробнее про основной конфигурационный файл сервиса.
В завершение потребуется проверить получившуюся конфигурацию
nginx -t
И в случае если ошибок нет — дать веб-серверу команду о необходимости перечитывания конфигурационных файлов
nginx -s reload
Пример успешной проверки конфигурации и перезапуска процесса представлен на скриншоте:
Одной из директив приведенного конфигурационного файла включается браузерное кэширование. Сервер начинает отдавать заголовок, распознавая который, браузер кэширует информацию.
Проверить, верно ли отрабатывает директива можно используя специализированные внешние сервисы.
В них указывается полный URL с путем к файлу, который должен кэшироваться. Обычно это путь к изображению, CSS или JS файлу.