如何在 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;