nginx 配置反向代理解析 访问绝对地址 css 图片 404 问题 哪位能解决

2018-02-04 17:22:14 +08:00
 guke01857

做了一个 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 缓存目录在哪里。。

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

10067 次点击
所在节点    Linux
18 条回复
defunct9
2018-02-04 17:32:26 +08:00
开 ssh,我上去搞
guke01857
2018-02-04 17:52:26 +08:00
@defunct9 怎么联系你? QQ ?
defunct9
2018-02-04 17:55:16 +08:00
微信:defunct,明天下午才有时间
guke01857
2018-02-04 17:56:14 +08:00
@defunct9 方便加下企鹅号码? 五六三三三四 009
guke01857
2018-02-04 17:57:06 +08:00
@defunct9 额。。好吧,比较着急
gstqc
2018-02-04 17:58:37 +08:00
这种情况,只有改源站代码才是最佳方案。
要么全部用相对路径,要么绝对路径加上 /test
guke01857
2018-02-04 18:06:15 +08:00
@gstqc 加了,确实还是有问题,感觉应该就是 反代解析规则 写的不对
h4lbhg1G
2018-02-04 18:19:44 +08:00
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 应该也差不多。
alvinbone88
2018-02-04 18:22:15 +08:00
location /test {
return 302 /test/;
}
location /test/ {
proxy_pass http://116.118.112.10/;
}
guke01857
2018-02-04 18:49:29 +08:00
@alvinbone88 按照你的规则试了下,访问静态文件 如: http://www.00018.net/aaa/css/style.css 报 404 错误
guke01857
2018-02-04 18:50:35 +08:00
@h4lbhg1G 我的环境是 linux centos nginx,怎么清除 proxy 代理缓存?
seers
2018-02-04 19:27:30 +08:00
location /test/ {

proxy_pass http://116.118.112.10/;

}
Xiaobaixiao
2018-02-04 19:54:21 +08:00
@defunct9 #1
” dalao “真热心啊,多少次看到你回复都是”开 ssh,我上去搞|看看“。
guke01857
2018-02-04 20:06:22 +08:00
@seers 这个规则可以实现反向解析,但是 访问 js css 静态资源就会 404
h4lbhg1G
2018-02-04 20:27:32 +08:00
@guke01857 和缓存无关啊 为啥会想到缓存。proxy_cache off; 说真的 你要是愿意给 ssh 权限,我真的现在就可以看看。
defunct9
2018-02-04 21:01:33 +08:00
@Xiaobaixiao 因为多数人描述的问题,跟实际情况有很大出入。所以一般都是开 ssh,上去眼见为实。

另外我补充一下问题,因为我上去看了。

1. 楼主的工作环境是 Win,teamviewer 上去
2. 楼主用的是宝塔面板,我对此一窍不通
3. 楼主认为是规则问题,只要改规则就可以解决

有能力的同学可以上去搞搞。
mdzz
2018-02-04 21:18:02 +08:00
我来试试
location ^~ /test/ {
proxy_pass http://116.118.112.10;
}
Fuzz
2018-02-05 13:57:31 +08:00
宝塔面板默认开启了防盗链,你需要把被镜像站点的防盗链白名单配置下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/428380

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX