Назад | Перейти на главную страницу

Настройте nginx для обслуживания статических файлов

Я пытаюсь обслуживать статические файлы (HTML, JS и CSS) из экземпляра вычислительного движка Google под управлением Debian 8. Я использовал git, чтобы клонировать веб-приложение в папку. /var/www/prod/app с командой

sudo git clone <my repo>

Я сделал файл conf в папке с поддержкой сайтов app.conf. Вот содержание

server {
    listen 80;
    root /var/www/prod/app;
    location / {
    }
}

Разве этой конфигурации недостаточно, чтобы моя машина обслуживала файлы, когда я набираю ip-адрес / путь моей машины?

Я вижу welcome to nginx страницы, когда я набираю IP-адрес своего экземпляра в браузере. Но ни один из файлов в prod / app не обслуживается. Я получаю 404 за все пути, которые я пробую. Может ли кто-нибудь помочь мне настроить это.

Вам нужно добавить try_files внутри местоположения и сделайте его сервером по умолчанию:

server {
    listen 80 default_server;

    root /var/www/prod/app;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Затем вам нужно перезапустить службу nginx.

Я понял. Nginx имеет файл конфигурации по умолчанию (без расширения ".conf") по следующему пути

/etc/nginx/sites-enable/default

В конфигурации по умолчанию есть серверный блок для default_server что обслуживает папку /var/www/html. Это переопределит любую конфигурацию, которую я сделал для обслуживания статических файлов без server_name поле.

Я закомментировал эти строки, и все работает, как ожидалось.

Спасибо Alexy Ten и Tero Kilkaken за то, что указали мне правильное направление.