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

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

  •  
  •   guke01857 · 2018-02-04 17:22:14 +08:00 · 10291 次点击
    这是一个创建于 2491 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    proxy_pass http://116.118.112.10/;

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

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

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

    有能力的同学可以上去搞搞。
    mdzz
        17
    mdzz  
       2018-02-04 21:18:02 +08:00   ❤️ 2
    我来试试
    location ^~ /test/ {
    proxy_pass http://116.118.112.10;
    }
    Fuzz
        18
    Fuzz  
       2018-02-05 13:57:31 +08:00
    宝塔面板默认开启了防盗链,你需要把被镜像站点的防盗链白名单配置下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:35 · PVG 19:35 · LAX 03:35 · JFK 06:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.