У меня есть сервер express, который обрабатывает мою маршрутизацию, и я использую nginx для проксирования моих запросов. Однако при доступе к маршруту, отличному от '/'
, я получаю сообщение об ошибке 404 от express. До сих пор я просмотрел множество других ответов, и все они кажутся 404 из nginx и решаются путем удаления try_files $uri $uri/ =404;
, но это не для меня. Я также вижу много вопросов о 404-ing для файлов stati c с помощью express / nginx, но я не думаю, что это обязательно так. Скорее, я не уверен, как моя ситуация связана с этими вопросами, поскольку я создаю шаблон с помощью pug с express.
Я получаю следующую ошибку:
NotFoundError: Not Found
at /root/my-app/app.js:27:10
at Layer.handle [as handle_request] (/root/my-app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/root/my-app/node_modules/express/lib/router/index.js:317:13)
at /root/my-app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/root/my-app/node_modules/express/lib/router/index.js:335:12)
at next (/root/my-app/node_modules/express/lib/router/index.js:275:10)
at /root/my-app/node_modules/express/lib/router/index.js:635:15
at next (/root/my-app/node_modules/express/lib/router/index.js:260:14)
at Function.handle (/root/my-app/node_modules/express/lib/router/index.js:174:3)
at router (/root/my-app/node_modules/express/lib/router/index.js:47:12)
, которая запускается (в приложении js):
app.use((req, res, next) => {
next(createError(404));
});
Мой маршрутизатор выглядит так:
router.get('/', (req, res) => {
res.render('index'); // does not give me 404 error
});
router.get('/other-route', (req, res) => {
res.render('other-route-pug-file'); // gives me 404 error
});
Моя nginx конфигурация выглядит так:
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
# ssl config details
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000; # the port that my express server is listening to
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Таким образом, эта ошибка появляется только тогда, когда я перенаправляю свое приложение через nginx в свой домен. На localhost я вижу /other-route
нормально. Я также просто не уверен, как я могу go отладить что-то вроде этого, поскольку я действительно не могу console.log()
куда-то легко, и я новичок в проксировании через nginx, поэтому любая помощь в любой области / решении это очень ценится. Спасибо!