Ошибка 404 в NGINX означает, что сервер не может найти запрашиваемый ресурс. Это может происходить по нескольким причинам:
1. **Неверный маршрут**: Запрос, который вы делаете (например, для `/api/category`), не соответствует ни одной из определённых локаций в конфигурации NGINX.
2. **Проблемы с проксированием**: Если NGINX настроен на проксирование запросов к бэкенду (в вашем случае Node.js + Express), это может быть связано с тем, что сервер, на который NGINX проксирует запросы, не обрабатывает его должным образом или не принимает его.
3. **Несоответствующая конфигурация бэкенда**: Возможно, маршрут `/api/category` не реализован в вашем приложении на Node.js + Express.
Вот шаги, которые могут помочь вам в решении проблемы:
### 1. Проверьте конфигурацию NGINX
Ваш текущий конфигурационный файл показывает, что вы настроили только `/api/auth/`, но не включили `/api/category`. Убедитесь, что у вас есть соответствующая локация:
```nginx
location /api/category {
proxy_pass http://localhost:5000; # Предполагая, что ваш бэкенд работает на порту 5000
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
```
Такой блок нужно добавить в секцию `server` вашей конфигурации NGINX.
### 2. Проверьте маршрутизацию в Express
Убедитесь, что у вас есть соответствующий маршрут в вашем приложении Express. Например:
```javascript
const express = require('express');
const app = express();
app.get('/api/category', (req, res) => {
res.send('Category data');
});
app.listen(5000, () => {
console.log('Server is running on port 5000');
});
```
### 3. Перезапустите NGINX
После изменения конфигурации не забудьте перезапустить сервер NGINX, чтобы изменения вступили в силу:
```bash
nginx -s reload
```
### 4. Проверьте логи
Если ошибка 404 все еще возникает, внимательно проверьте логи, которые вы уже предоставили. Используйте `error_log` для получения более детальной информации о том, что происходит:
```nginx
error_log logs/error.log debug;
```
Это может помочь вам понять, куда приводят ваши запросы и почему они не обрабатываются.
### 5. Попробуйте сделать запрос напрямую к бэкенду
Чтобы проверить, работает ли бэкенд корректно, попробуйте сделать запрос к вашему серверу Express напрямую (например, через Postman или cURL):
```bash
curl http://localhost:5000/api/category
```
Если это возвращает данные, ваша проблема, скорее всего, заключается в настройках NGINX. Если нет, вам нужно решить проблему с вашим бэкендом.
Следуя этим шагам, вы сможете отслеживать и устранять ошибку 404 в NGINX.