Hello!
2013/8/9 iamysq:
> 你好,张哥!
>
你好!不过我姓章,不姓张 :)
> headers-more-nginx-module很好用,但唯一的不足是一看就知道是修改过的(因为server排在最后显示)。
>
> 默认server排在第一位:
> Server: nginx/1.5.1
> Date: Sat, 10 Aug 2013 01:42:53 GMT
> Content-Type: text/html
> Content-Length: 184
> Connection: keep-alive
> Keep-Alive: timeout=15
> Location: http://nginx.org/
>
> 修改后server排在最后,一看就知道修改过了。
> Date: Sat, 10 Aug 2013 01:42:54 GMT
> Content-Type: text/html
> Content-Length: 184
> Connection: keep-alive
> Keep-Alive: timeout=15
> Location: http://nginx.test/
> Server: nginx/1.5.1
>
> 所以,我的建议是server默认一定要排在第一位,而不需要手动修改各值来改变顺序。
这个主要受限于 Nginx 内部为响应头所使用的数据结构,即 ngx_queue_t 类型的
r->headers_out.headers。这种 ngx_queue_t
类型的数据结构被设计成在末尾追加记录的形式,而在开头添加新记录并不是原生支持的操作,而且如果一定要这么干的话,实现比较复杂,而且属于高代价操作(因为需要把每个
part 中的所有元素都往后移一格)。所以对于这种修改我觉得并不值得,况且从语义上讲,HTTP 响应头之间的顺序本来就不重要。
当然,你如果一定要修改,也可以自己给 ngx_headers_more 打补丁(按我上面介绍的做法)。但我并不希望这个补丁合入主干版本。
> 另外,还建议404、50x之类的错误页面也能自定义nginx标识。
>
你可以通过 error_page 配置指令指定你自己的错误页内容:
http://wiki.nginx.org/HttpCoreModule#error_page
> 我是在windows下vc6编译的(gcc编译不了),因为nginx配置优雅而喜欢上了。
呵呵,很高兴知道 ngx_headers_more 模块兼容 Windows 平台上的 VC 工具链 :)
最后,我建议你加入 openresty
中文邮件列表并在那里讨论这样的问题:https://groups.google.com/group/openresty 同时抄送给该列表。
Best regards,
-agentzh