получение ошибки 404 от nginx для маршрута, который перенаправляется в файл .html

#javascript #node.js #angular #nginx #devops

#javascript #node.js #угловой #nginx #devops

Вопрос:

У меня есть следующий маршрут в nodejs

 app.get('/admin', function (req, res) {
     console.log("CAME HERE");
     res.redirect('/login.html');
});
  

мой nginx.conf выглядит так

 upstream dev{
    server 127.0.0.1:3001;
}

server {
    listen       80;
    server_name  dev.abc.com;


    location /api {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
            proxy_pass http://dev;
    }

    location /admin {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
            proxy_pass http://dev;
    }
  

}

Теперь, когда я ввожу этот URL-адрес в браузере dev.abc.com/admin , страница перенаправляется http://dev.abc.com/login.html , но в браузере отображается ошибка следующим образом:

 404 Not Found
nginx/1.0.5
  

с localhost все работает нормально.

Я думаю, что со стороны nginx нужно сделать что-то еще, не уверен, что.

Комментарии:

1. где login.html находится ли он на самом деле, находится ли он в /public папке или?

2. ДА, он находится в папке /public

Ответ №1:

Ваша текущая конфигурация Nginx настроена только на обслуживание процесса узла @ порт 3001, никаких упоминаний о каких-либо статических файлах.

 # replace with your public directory path
root /www/data;

location / {
    try_files $uri $uri/ $uri.html =404;
}
  

Ссылка: обслуживание статического содержимого