Я пытаюсь обслуживать статические файлы (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 за то, что указали мне правильное направление.