首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

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

  •  
  •   guke01857 · 110 天前 · 1647 次点击
    这是一个创建于 110 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    18 回复  |  直到 2018-02-05 13:57:31 +08:00
        1
    defunct9   110 天前 via iPhone
    开 ssh,我上去搞
        2
    guke01857   110 天前
    @defunct9 怎么联系你? QQ ?
        3
    defunct9   110 天前 via iPhone
    微信:defunct,明天下午才有时间
        4
    guke01857   110 天前
    @defunct9 方便加下企鹅号码? 五六三三三四 009
        5
    guke01857   110 天前
    @defunct9 额。。好吧,比较着急
        6
    gstqc   110 天前 via iPhone
    这种情况,只有改源站代码才是最佳方案。
    要么全部用相对路径,要么绝对路径加上 /test
        7
    guke01857   110 天前
    @gstqc 加了,确实还是有问题,感觉应该就是 反代解析规则 写的不对
        8
    h4lbhg1G   110 天前
    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   110 天前
    location /test {
    return 302 /test/;
    }
    location /test/ {
    proxy_pass http://116.118.112.10/;
    }
        10
    guke01857   110 天前
    @alvinbone88 按照你的规则试了下,访问静态文件 如: http://www.00018.net/aaa/css/style.css 报 404 错误
        11
    guke01857   110 天前
    @h4lbhg1G 我的环境是 linux centos nginx,怎么清除 proxy 代理缓存?
        12
    seers   110 天前
    location /test/ {

    proxy_pass http://116.118.112.10/;

    }
        13
    Xiaobaixiao   110 天前
    @defunct9 #1
    ” dalao “真热心啊,多少次看到你回复都是”开 ssh,我上去搞|看看“。
        14
    guke01857   110 天前
    @seers 这个规则可以实现反向解析,但是 访问 js css 静态资源就会 404
        15
    h4lbhg1G   110 天前
    @guke01857 和缓存无关啊 为啥会想到缓存。proxy_cache off; 说真的 你要是愿意给 ssh 权限,我真的现在就可以看看。
        16
    defunct9   110 天前
    @Xiaobaixiao 因为多数人描述的问题,跟实际情况有很大出入。所以一般都是开 ssh,上去眼见为实。

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

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

    有能力的同学可以上去搞搞。
        17
    mdzz   110 天前
    我来试试
    location ^~ /test/ {
    proxy_pass http://116.118.112.10;
    }
        18
    Fuzz   110 天前
    宝塔面板默认开启了防盗链,你需要把被镜像站点的防盗链白名单配置下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1801 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 35ms · UTC 08:22 · PVG 16:22 · LAX 01:22 · JFK 04:22
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1