Разверните экспресс-сервер, который служит для реагирования за nginx - PullRequest
0 голосов
/ 03 июля 2018

У меня есть экспресс-сервер на экземпляре ec2, который имеет API (/api) и клиент (все, что не /api обрабатывается в реакции.)

Goging to http://ip.address:3000 работает нормально. Показывает приложение и все работает.

Однако переход к https://ip.address (перенаправленному nginx) не работает нормально. Он загружает мой index.html правильно, но 404 с на все файлы /static/bundle.js и /static/bundle.css.

Nginx

    # redirect to node for the dynamic stuff
    location / {
            proxy_pass https://localhost:8003/index.html;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;

            proxy_hide_header X-Powered-By;
    }

экспресс

let router: express.Router = express.Router();
router.use(express.static(path.join(__dirname, "/build")));

const api: ApiRouter.Api = new ApiRouter.Api();
router.use("/api", api.router.bind(api.router));

//Catch all for react - client side routing
router.get("*", function(req, res) {
  res.sendFile(path.resolve(__dirname, "/build/index.html"));
});

1 Ответ

0 голосов
/ 03 июля 2018

Если вы скажете Nginx

proxy_pass https://localhost:8003/index.html;

Тогда каждому запросу, который соответствует этому блоку местоположения, будет заменена соответствующая часть пути URL-адреса на любой путь, который вы добавили к URL-адресу proxy_pass.

Ваш блок местоположения просто / Так что, если я запрашиваю www.yoursite.com/static/bundle.js, тогда Nginx совпадет с первым /, замените его вашим путем и добавьте остальные. Так что постараюсь обслужить www.yoursite.com/index.htmlstatic/bundle.js

Вы также должны использовать прокси / api через Nginx, а если статические файлы поступают с вышестоящего прокси, вы также должны включить кэширование прокси в Nginx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...