Как использовать stati c файлов (CSS, ...) с кратными Express app + NGINX в качестве обратного прокси-сервера - PullRequest
1 голос
/ 03 мая 2020

Контекст
Я запускаю приложение, содержащее несколько узловJS / Express на одном сервере с тем же IP-адресом. Я использую Nginx для обратного прокси этих приложений и перенаправления на адрес подпапки (а не поддомен, я не хочу).
ex: http://123.0.0.1: 8000 => http://monsite.com/Site1

Проблема
Мои файлы активов (css, изображения, ...) не загружаются, у меня ошибка 404 на этих состояниях c файлы при загрузке страницы. Это происходит только тогда, когда я захожу на сайт через редирект прокси http://monsite.com/Site1, а не когда я использую IP-адрес: http://123.0.0.1: 8000

Не знаю Эта проблема возникает, если используется обратный прокси-сервер из root в nginx conf: location / {, но я хочу получить доступ к сайту с адреса подпапки

Моя интеграция
древовидные файлы:

var/www/html
          |Site1/
          |   |server.js
          |   |Views/
          |   |   |index.pug
          |   |Public/
          |   |   |Css/
          |   |   |   |Style.css
          |Site2/
          |....

nodejs код сервера

const PORT = 8000;
const HOSTNAME = 'www.monsite.com';

// Dependencies.
const express = require('express');
const http = require('http');

// Initialization.
var app = express();
var server = http.Server(app);

app.set('port', PORT);
app.set('view engine', 'pug');
app.set('views','Views');

app.use(express.static('Public'));

app.use('/', (request, response) => {
    response.render('index');
});

server.listen(PORT, HOSTNAME, function() {
    console.log(`STARTING SERVER ON PORT ${PORT}`);
});

индекс мопс-кода

doctype html

html
  head
    title Site 1
    link(rel="stylesheet" href="/Css/style.css")

  body
    p Hello

nginx conf

server {
        listen 80;
        listen [::]:80;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html index.php;
        server_name www.monsite.com;

        location / {
                #Reserved for another site
        }

        location /Site1/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header HOST $http_host;
                proxy_set_header X-NginX-Proxy true;

                proxy_redirect off;
                proxy_pass http://123.0.0.1:8000/;
        }
}

PS: Я испробовал почти все решения и код, которые я нашел в поисках этой проблемы, и ничего не помогло, поэтому я спрашиваю прямо здесь. Спасибо.

1 Ответ

1 голос
/ 05 мая 2020

Я думаю, что проблема с URL-адресом в теге ссылки для загрузки css, URL-адрес недействителен, потому что URL-адрес на самом деле /Site1/Css/style.css.

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