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

我写的这个 Nginx 规则有什么问题吗 ?

  •  
  •   gclove · 2015-07-12 22:42:56 +08:00 · 2700 次点击
    这是一个创建于 3182 天前的主题,其中的信息可能已经有所发展或是发生改变。
    if($server_name == fonts.xmap.org){
        sub_filter 'fonts.gstatic.com' 'fonts.xmap.org';
    }else if($server_name == jfonts.xmap.org){
        sub_filter 'fonts.gstatic.com' 'jfonts.xmap.org';
    }
    
    7 条回复    2015-07-13 20:55:34 +08:00
    br00k
        1
    br00k  
       2015-07-13 09:23:25 +08:00
    不需要判断吧 直接写在location里就可以了吧
    usernametoolong
        2
    usernametoolong  
       2015-07-13 09:58:54 +08:00
    sub_filter 'fonts.gstatic.com' $server_name;
    一条就可以了,如果还有其他server name的话可以用map来定义。

    问题?nginx不支持else。
    gclove
        3
    gclove  
    OP
       2015-07-13 12:19:51 +08:00
    @usernametoolong 这是个反代 google fonts 的规则 , 我想绑定两个域名 . 不支持 else 吗 ?

    那 map 是怎么定义的 .
    gclove
        4
    gclove  
    OP
       2015-07-13 12:20:18 +08:00
    @br00k 直接写在 location 里 ? 什么意思 ?
    gclove
        5
    gclove  
    OP
       2015-07-13 12:28:32 +08:00
    @usernametoolong 大神可以教我下 map 嘛 .. 这个解决了 .. 我用 $server_name 代替了 .
    gclove
        6
    gclove  
    OP
       2015-07-13 12:34:41 +08:00
    @usernametoolong 好像还是不行 ... 替换的是 提一个 server_name ...
    ```
    sub_filter 'fonts.gstatic.com' $server_name;
    ```
    usernametoolong
        7
    usernametoolong  
       2015-07-13 20:55:34 +08:00
    把$server_name换成$host或者$http_host
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4180 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 916ms · UTC 05:28 · PVG 13:28 · LAX 22:28 · JFK 01:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.