2017-08-04 47 views
0

我試圖通過nginx將一段JavaScript代碼添加到反向代理站點。如何將JavaScript文件包含到我的nginx.conf中

特別是,我有一個sub_filter規則,就像這樣:

sub_filter </head> 
    '</head><script language="javascript"> 
    console.log("hello world") 
    </script>'; 

有我重構這個腳本,它自己的文件,並從那裏加載它的方式。喜歡的東西:

sub_filter </head> 
    '</head>$load_script_from('/src/tracking')'; 

或者,這是不可能的,我應該使用gulp從一堆其他文件編譯我的nginx.conf

這裏是我的完整nginx.conf

user nginx; 
worker_processes 1; 

error_log /var/log/nginx/error.log warn; 
pid  /var/run/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 

    server { 
     listen 80; 
     server_name localhost; 

     location/{ 

      sub_filter </head> 
      '</head><script>console.log("hello world")</script>'; 

      proxy_pass 10.1.1.1:80; 
      proxy_set_header Accept-Encoding ""; 
     } 
    } 
} 

回答

0

我解決了這個使用Openresty,它可以讓你在Lua使用nginx的。我保存了一個注入腳本,並使用set_by_lua_block將該文件加載到變量中。

set_by_lua_block $injection_script { 
    local f = io.open("/path/to/file.js", "rb") 
    local content = f:read("*all") 
    f:close() 
    return content 
} 

sub_filter '</head>' "<script>${injection_script}</script></head>"; 
相關問題