我已经配置了反向代理,并且在加载http的同时,登录页面的css / image也不会加载。它正在尝试从本地主机而不是上游服务器加载它们
我尝试了多次proxy_redirects和重写(尽管我在这方面还很陌生),但似乎无法使其正常工作。
server {
listen 80;
location /test {
proxy_pass https://10.10.10.10/platform/login;
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_redirect https://10.10.10.10/ /;
}
}
记录错误:
[error] 26072#0: *127 open() "/usr/share/nginx/html/platform/images/leaves.png" failed (2: No such file or directory), client: 127.0.0.1, server: , request: "GET /platform/images/leaves.png HTTP/1.1", host: "localhost", referrer: "http://localhost/test"
当我检查chrome上的元素时,它也会为所有css /图像返回404。
请帮助
答案 0 :(得分:0)
您网站的HTML尝试访问的网址不是/test/**
而是/platform/images/leaves.png
,这意味着NGINX不会尝试使用反向代理。
除了/test/**
以外,NGINX配置的这一部分什么都没有用,NGINX正在Web服务器的本地磁盘上搜索不存在的文件。
尝试使用捕获所有作用域的配置,而不只是/ test。
server {
listen 80;
location /platform {
proxy_pass https://10.10.10.10/platform/;
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_redirect https://10.10.10.10/ /;
}
}
您的网站应该在http://{NGINX server}/platform/login
中可见
这将更改您端点的网址,因此您可以为/test
添加一个例外,以使http://{NGINX server}/test
也正常工作。
server {
listen 80;
location /platform {
proxy_pass https://10.10.10.10/platform/;
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_redirect https://10.10.10.10/ /;
}
location /test {
proxy_pass https://10.10.10.10/platform/login;
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_redirect https://10.10.10.10/ /;
}
}
您还可以编辑HTML页面并将proxy_pass /test/**
更改为https://10.10.10.10/platform/
答案 1 :(得分:0)
我觉得可能存在几个不同的问题。位置路径,您的重定向和https。
function foo(){
this.OnDone = null;
const Do = function() {
console.log(this.OnDone);
if (typeof this.OnDone === 'function')
this.OnDone();
}
return {Do, onDone:this.OnDone};
}
let f = new foo();
f.OnDone = () => {
console.log('OnDone');
};
f.Do();
此配置执行以下操作:
server {
listen 80;
location /platform/ {
proxy_pass https://10.10.10.10/;
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-Forwarded-Proto $scheme;
}
}
中的子目录,例如platform
。/platform/login
处为上游服务器建立连接。