Служите для экспресс-динамического URL с использованием NGINX с обратным прокси-сервером Nodejs - PullRequest
0 голосов
/ 15 января 2019

Я использую 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...