Обратный прокси Nginx к Node.js с перезаписью

У меня есть несколько приложений, работающих за обратным прокси-сервером Nginx, одним из которых является Node-сервер с Express.js. Я'м проксимdomain.com/demo/app/ вlocalhost:7003/ используя эту конфигурацию Nginx:

http {

    ...

    server {

        listen 80;
        server_name domain.com;

        ...

        location /demo/app {

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Scheme $scheme;

            rewrite ^/demo/app/?(.*) /$1 break;
            proxy_pass http://localhost:7003;
        }

        ...
    }
}

Это прекрасно работает иapp получает запросы, как если бы он был основан на/, Проблема вapp обрабатывает свои собственные статические файлы и может делать запросы на маршруты, такие какcss/app.css или жеimages/image.jpg, Но из-за обратного прокси, они на самом деле существуют в/demo/app/css/app.css а также/demo/app/images/image.jpg respectively.I»

мы решили эту проблему, заставив Nginx передать Node собственный заголовок, указывающий корневой путь, который сервер Node добавляет к URL-адресам всех последующих запросов. Но теперь мой код завален этими строками корневого пути. Например, часть моих внутренних шаблонов:

link(rel='stylesheet', href="#{basePath}/css/base.css")
link(rel='stylesheet', href="#{basePath}/css/skeleton.css")
link(rel='stylesheet', href="#{basePath}/css/layout.css")

Какие'более элегантный способ справиться с этим? Isn»Есть ли способ заставить Nginx распознавать запросы, поступающие с вышестоящего сервера, и автоматически перенаправлять их на этот сервер?

Ответы на вопрос(1)

Ваш ответ на вопрос