如何使用multiplex-Express应用程序+NGINX作为反向代理服务器来提供静态文件(CSS,..)



上下文
我在同一台服务器上使用相同的IP地址运行多个节点的JS/Express应用程序。我使用Nginx反向代理这些应用程序,并将其重定向到子文件夹地址(而不是子域,我不想(
例如:http://123.0.0.1:8000=>http://monsite.com/Site1

问题
我的资产文件(css、images…(没有加载,加载页面时,这些静态文件出现404错误。只有当我通过代理重定向访问网站时才会发生这种情况http://monsite.com/Site1而不是当我使用IP地址时:http://123.0.0.1:8000

如果在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}`);
});

索引pug代码

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/;
}
}

附言:我几乎尝试了我在搜索这个问题时找到的所有解决方案和代码,但都没有成功,这就是我直接在这里询问的原因。非常感谢。

我认为问题在于加载css的链接标签中的url,该url无效,因为该url实际上是/Site1/Css/style.css

最新更新