Я использую Express для обслуживания статических файлов и динамических URL-адресов в моем приложении nodejs. Я генерирую URL на основе: id в Mongodb, а затем на NGINX. Я использую обратный прокси-сервер Nodejs для предоставления этого пути пользователю, но он не работает, что бы я ни пытался. Он всегда говорит "НЕ МОЖЕТ ПОЛУЧИТЬ .."
Я использую NGINX 1.14.2, узел 8.14.0. Я пробовал директиву перезаписи NGINX и различные шаблоны (~ , ~ ^,. и т. Д.), Но ни одна из них не сработала. Я включил текущий экспресс-код и конфигурацию NGINX ниже. Любая помощь очень ценится
Express
router.get('/dynamic-uri/:fooId', function (req, res) {
res.render('index');
});
Результирующий URL с: fooId равен
https://example.com/myNodeApp/dynamic-uri/5c35e51228122504b57126d7
NGINX Config
location /myNodeApp/dynamic-uri {
proxy_pass http://x.x.x.x:3000;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
}
Конечно, fooId не существует как статический путь, и для обслуживания статических файлов у меня есть следующий блок, который отлично работает
location ~* /myNodeApp/(static|img|media|app|css|js) {
proxy_pass http://x.x.x.x:3000;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
}