因此,我访问了我的服务器,domain.com:3333
但只是在我的 nginx 配置中将其切换为domain.com/nodeapp
使用上游和代理传递。重定向工作正常,但现在指向正在使用的静态文件的链接我的 index.html (/styles/style.css & socket.io/socket.io.ks) 已损坏,并且显示的都是原始 html。
来自 index.js
app.get('/nodeapp', function(req,res){
res.sendFile(path.join(__dirname, '/views', 'index.html'));
});
app.use('/styles', express.static(path.join(__dirname, '/views/styles')));
来自 index.html
<link rel="stylesheet" type="text/css" href="styles/style.css">
<script src="socket.io/socket.io.js"></script>
来自 .../nginx/sites-enabled/default
upstream nodeapp{
server localhost:3333 fail_timeout=0;
}
server{
....
location /nodeapp{
proxy_pass http://nodeapp;
}
....
}
我该如何重新建立链接?
请注意,在切换之前的 index.js 中,显示的第一行是app.get('/', function(req,res){
答案1
所以,这有点难以弄清楚,但又非常简单。
location /socket.io {
proxy_pass http://nodeapp;
}
location /styles {
proxy_pass http://nodeapp;
}
index.html 链接到的路径必须设置为 nginx conf 中 prox_pass 到节点服务器的位置。
答案2
在您的位置和 proxy_pass 目标后面添加一个斜杠,并保持原始 index.js 不变。但是您的链接应指向 index.html 中的 /nodeapp/{something}。
location /nodeapp/ {
proxy_pass http://nodeapp/;
}