V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
mickey001
V2EX  ›  NGINX

红包找人帮忙解决, nginx 反向代理目录到另一台服务器的规则设置问题

  •  
  •   mickey001 · 2018-03-17 17:21:08 +08:00 · 4581 次点击
    这是一个创建于 2203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    location /vip { proxy_pass http://192.168.1.111/; }

    location ^~/abc{ proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://192.168.1.201/abc; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; break; }

    以上 2 个规则,都可以正常解析反代到 另外的服务器,

    比如,我的网站域名是 www.abc.com 是在 198.1.1.6 这台服务器,我需要反向解析一个 目录到 另一台服务器, 比如反向解析后的目录名是:www.abc.com/vip

    那么我的规则这样写是对的:

    location /vip { proxy_pass http://192.168.1.111/; }

    但是现在有个问题,目录可以成功解析到另一台服务器,但是 目录程序里的 css jss 图片都无法加载显示,

    所以现在红包找人帮忙解决 css jss 图片的加载显示问题。。

    能解决的速速联系我 企鹅号: 二七四七零七零零九五

    9 条回复    2018-03-18 11:48:17 +08:00
    mickey001
        1
    mickey001  
    OP
       2018-03-17 17:30:50 +08:00
    今天好多 休息的啊。。。真羡慕
    qinxi
        2
    qinxi  
       2018-03-17 17:43:57 +08:00
    因为 css/js 的根路径不是 /vip 开头呗.... 不是 vip 开头就不匹配你的反向代理了
    mickey001
        3
    mickey001  
    OP
       2018-03-17 17:55:19 +08:00
    @qinxi 那应该怎么解决?
    CloudnuY
        4
    CloudnuY  
       2018-03-17 18:03:52 +08:00
    vip 后面加上"/"试试

    location /vip/ {.......
    w0nglend
        5
    w0nglend  
       2018-03-17 19:18:20 +08:00 via Android   ❤️ 1
    location ~* ^/(css|js)/.+\.(css|js)$ {
    #checking if referer is from /vip
    if ($http_referer ~ "^.*/vip"){
    return 417;
    }
    }

    error_page 417 /vip$request_uri;

    location ^~ /vip {
    proxy_pass http://192.168.1.111/;
    }
    salmon5
        6
    salmon5  
       2018-03-17 22:16:14 +08:00
    @w0nglend
    @mickey001
    用 ngx_http_sub_module 也可以
    location /vip {
    proxy_pass http://192.168.1.111/;
    sub_filter 'href="/' 'href="/vip/';
    sub_filter 'src="/' 'src="/vip/';
    #sub_filter_types text/html;
    #sub_filter_types *;
    sub_filter_once off;
    }
    mickey001
        7
    mickey001  
    OP
       2018-03-17 22:40:12 +08:00
    @salmon5 试了下,规则报错
    mickey001
        8
    mickey001  
    OP
       2018-03-17 22:50:32 +08:00
    愁死我了,,找了 N 个 人了帮忙弄,都没弄明白。。。。。哪位能救救命
    plusice
        9
    plusice  
       2018-03-18 11:48:17 +08:00
    把`location /vip { proxy_pass http://192.168.1.111/; }`中 proxy_pass 后面的斜杠去掉应该就可以了,搜一下不就有答案了吗: http://blog.csdn.net/zhongzh86/article/details/70173174
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   952 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 137ms · UTC 21:12 · PVG 05:12 · LAX 14:12 · JFK 17:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.