Módulo de Substituição Nginx

1

Para começar, eis o que estou tentando fazer: Eu tenho um arquivo JavaScript que contém uma variável para o endereço remoto do cliente. Por padrão, a variável é definida como 0.0.0.0 . Como o Nginx está enviando o arquivo, eu gostaria de substituir o 0 pela variável $ remote_addr no Nginx. Então, basicamente, aqui está o que eu tenho:

Arquivo de teste JavaScript:

remote_addr = '0.0.0.0';
alert(remote_addr);

Arquivo de configuração do Nginx:

location /path/to/my.js {
  alias /real/path/to/my.js
  sub_filter "0.0.0.0" $remote_addr;
  sub_filter_once off;
  sub_filter_types application/x-javascript;

  autoindex on;
}

Quando eu tento a solicitação, ainda vejo 0.0.0.0 no arquivo retornado. Eu tentei também usar simplesmente "Hello World" em vez de $ remote_addr e ainda ver meu valor padrão.

A saída de nginx -V é a seguinte:

nginx version: nginx/1.2.7                                                                                             
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configure arguments: --prefix=/opt/nginx --add-module=/home/vagrant/nginx/echo-nginx-module-0.42 --with-http_sub_module --with-pcre=/home/vagrant/nginx/pcre-8.32 

Atualizar

Ainda estou tendo o problema, mas atualizei minha configuração do Nginx. Fiz uma curva do arquivo JS e vi que o Nginx está definindo o cabeçalho Content-Type como application/x-javascript , então adicionei sub_filter_types application/x-javascript

    
por Dave Long 12.02.2013 / 19:32

2 respostas

2

Tem a certeza que o seu ficheiro ".js" tem tipo mime "text / html"?

syntax: sub_filter_types mime-type ...;

default: sub_filter_types text/html;

context: http, server, location

Enables string replacement in responses with the specified MIME types in addition to “text/html”. The special value “*” matches any MIME type (0.8.29).

@ link

    
por 13.02.2013 / 11:01
0

Eu também estava tentando fazer uma substituição básica de endereços IP com nomes de domínio em meus arquivos .js, mas a reescrita não começou a funcionar até o momento que eu adicionei o seguinte tipo mime na minha configuração nginx:

sub_filter_types application/javascript application/x-javascript;

A configuração da localização é a seguinte:

location ~* ^.+\.js$ {

    sub_filter "ip-address" "domain-name";
    sub_filter_once off;
    sub_filter_types application/javascript application/x-javascript;

}
    
por 28.11.2017 / 21:12

Tags