做了一个 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 缓存目录在哪里。。
哪位遇到过这个问题,,求解决方案
1
defunct9 2018-02-04 17:32:26 +08:00 via iPhone
开 ssh,我上去搞
|
3
defunct9 2018-02-04 17:55:16 +08:00 via iPhone
微信:defunct,明天下午才有时间
|
6
0ZXYDDu796nVCFxq 2018-02-04 17:58:37 +08:00 via iPhone
这种情况,只有改源站代码才是最佳方案。
要么全部用相对路径,要么绝对路径加上 /test |
8
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 应该也差不多。 |
9
alvinbone88 2018-02-04 18:22:15 +08:00
location /test {
return 302 /test/; } location /test/ { proxy_pass http://116.118.112.10/; } |
10
guke01857 OP @alvinbone88 按照你的规则试了下,访问静态文件 如: http://www.00018.net/aaa/css/style.css 报 404 错误
|
12
seers 2018-02-04 19:27:30 +08:00
location /test/ {
proxy_pass http://116.118.112.10/; } |
13
Xiaobaixiao 2018-02-04 19:54:21 +08:00
@defunct9 #1
” dalao “真热心啊,多少次看到你回复都是”开 ssh,我上去搞|看看“。 |
15
h4lbhg1G 2018-02-04 20:27:32 +08:00
@guke01857 和缓存无关啊 为啥会想到缓存。proxy_cache off; 说真的 你要是愿意给 ssh 权限,我真的现在就可以看看。
|
16
defunct9 2018-02-04 21:01:33 +08:00
@Xiaobaixiao 因为多数人描述的问题,跟实际情况有很大出入。所以一般都是开 ssh,上去眼见为实。
另外我补充一下问题,因为我上去看了。 1. 楼主的工作环境是 Win,teamviewer 上去 2. 楼主用的是宝塔面板,我对此一窍不通 3. 楼主认为是规则问题,只要改规则就可以解决 有能力的同学可以上去搞搞。 |
17
mdzz 2018-02-04 21:18:02 +08:00 2
我来试试
location ^~ /test/ { proxy_pass http://116.118.112.10; } |
18
Fuzz 2018-02-05 13:57:31 +08:00
宝塔面板默认开启了防盗链,你需要把被镜像站点的防盗链白名单配置下
|