Nginx 配置文件中的字符串替换

Nginx 配置文件中的字符串替换

如何在 Nginx 配置文件中将变量和字符串混合在一起?

我有一个如下所示的配置文件:

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";
        }
}

它是一个推送服务器,它应该根据客户端在回调参数上传递的内容向客户端推送消息。

例如,如果用户请求http://example.org/sub?callback=call&id=blah并且他们收到一条消息,内容应该是call({"id":0, "data":"blah"});

上述代码输出文字变量名称

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

有人知道如何在 Nginx 配置文件中连接字符串吗?

答案1

将字符串存储在另一个变量(例如,$string)中并执行以下操作:

设置$回调$arg_callback$string;

相关内容