Substituição de strings nos arquivos de configuração do Nginx

4

Como você mistura variáveis e strings em um arquivo de configuração Nginx?

Eu tenho um arquivo de configuração que se parece com isso:

server {
        listen 80;
        server_name example.org;
        root /var/www/comet;
        index index.htm;
        default_type text/plain;
        location /publish {
                push_stream_publisher admin;
                set $push_stream_channel_id             $arg_id;
        }
        location /sub {
                push_stream_subscriber long-polling;
                set $callback "${arg_callback}({\"id\":~id~,\"data\":~text~});";
                push_stream_message_template   $callback;
                set $push_stream_channels_path "/channel1";
        }
}

É um servidor de envio e deve enviar uma mensagem para o cliente, dependendo do que eles passarem no parâmetro de retorno de chamada.

Ou seja. Se o usuário solicitar o link e receber uma mensagem, ele deverá ler call({"id":0, "data":"blah"});

O código acima mostra o nome da variável literal

tangrs@~ $ curl "http://example.org/sub?id=woo&callback=call" -D - && echo
HTTP/1.1 200 OK
Server: nginx/1.0.11
Date: Thu, 12 Jan 2012 04:55:38 GMT
Content-Type: text/plain
Last-Modified: Thu, 12 Jan 2012 04:55:38 GMT
Connection: close
Transfer-Encoding: chunked
Etag: 0

$callback

Alguém sabe como concatenar strings em arquivos de configuração do Nginx?

    
por tangrs 12.01.2012 / 06:04

1 resposta

4

Armazene a string em outra variável (digamos, $ string) e faça isso:

set $ callback $ arg_callback $ string;

    
por 28.01.2012 / 11:16

Tags