技术解析

nginx 配置反向代理解析 访问绝对地址 css 图片 404 问题 哪位能解决
0
2021-06-24 14:54:55
idczone

做了一个 linux nginx 反向解析目录 绑定到 第 2 台 代理服务器;

主服务器主站 域名 www.a.com 代理服务器 ip:116.118.112.10

反向解析目录名 test 到 代理服务器 IP

即 访问 www.a.com/test/ 资源时,访问的是 代理服务器 的资源。

nginx 站点域名的 伪静态规则配置如下:

location /test {

proxy_pass http://116.118.112.10;

}

可以成功访问

但是遇到了一个问题:

访问 代理代理服务器的静态文件比如 css jss 资源时 页面 404 无法正常加载

http://www.a.com/test/css/style.css 这种绝对路径 报 404

在网上找了一段代码加入后,css 可以访问了,但是 首页 index.html 文件确又报 404,不知道啥问题。

location ~ .*.(js|css)$ { proxy_pass http://127.0.0.1; }

来回修改半天 伪静态配置文件后,删掉上面那段 js css 的规则文件,只保留 最上面的那个反代目录解析后,发现 index.html 无法访问,css 能访问,本来是不加上面 js|css 这个规则 index.html 可以正常访问,但是现在完全混乱了,貌似是 proxy 缓存问题? 可是我的规则里根本没设定缓存代码,也不知道 nginx 默认的 proxy 缓存目录在哪里。。

哪位遇到过这个问题,,求解决方案


开 ssh,我上去搞

怎么联系你? QQ ?

微信:defunct,明天下午才有时间

方便加下企鹅号码? 五六三三三四 009

额。。好吧,比较着急

这种情况,只有改源站代码才是最佳方案。
要么全部用相对路径,要么绝对路径加上 /test

加了,确实还是有问题,感觉应该就是 反代解析规则 写的不对

subs_filter_types text/css text/xml text/javascript application/json;
subs_filter '/css/style.css' '/test/css/style.css' igr;
subs_filter "src=\"/css/" "src=\"/test/css/";
当然你得重新编译 nginx。
Ubuntu 的话 apt-get source nginx; apt-get build-dep nginx;
然后 ningx -V 把后面的编译参数拷贝下来,最后加一行--add-module=/src/ngx_http_substitutions_filter_module 重新编译成 deb 安装包就好了。我是本地编译 scp 上传上去的。实际上服务器编译也是一样。
CentOS 应该也差不多。

location /test {
return 302 /test/;
}
location /test/ {
proxy_pass http://116.118.112.10/;
}

按照你的规则试了下,访问静态文件 如: http://www.00018.net/aaa/css/style.css 报 404 错误

我的环境是 linux centos nginx,怎么清除 proxy 代理缓存?

location /test/ {
proxy_pass http://116.118.112.10/;
}

/>” dalao “真热心啊,多少次看到你回复都是”开 ssh,我上去搞|看看“。

这个规则可以实现反向解析,但是 访问 js css 静态资源就会 404

和缓存无关啊 为啥会想到缓存。proxy_cache off; 说真的 你要是愿意给 ssh 权限,我真的现在就可以看看。

因为多数人描述的问题,跟实际情况有很大出入。所以一般都是开 ssh,上去眼见为实。
另外我补充一下问题,因为我上去看了。
1. 楼主的工作环境是 Win,teamviewer 上去
2. 楼主用的是宝塔面板,我对此一窍不通
3. 楼主认为是规则问题,只要改规则就可以解决
有能力的同学可以上去搞搞。

我来试试
location ^~ /test/ {
proxy_pass http://116.118.112.10;
}

宝塔面板默认开启了防盗链,你需要把被镜像站点的防盗链白名单配置下

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服