如何设置nginx的默认主机?

我想弄清楚如何为我的nginx安装设置一个默认的主机。 我在nginx Wiki中发现了这篇文章:

http://wiki.nginx.org/NginxVirtualHostExample#A_Default_Catchall_Virtual_Host

不幸的是,这是行不通的。 重新启动后,我得到这个:

Restarting nginx: nginx: [emerg] unknown directive "http" in /etc/nginx/sites-enabled/catchall:1 nginx: configuration file /etc/nginx/nginx.conf test failed 

删除http指令后,我得到这个:

 Restarting nginx: nginx: [emerg] unknown log format "main" in /etc/nginx/sites-enabled/catchall:7 nginx: configuration file /etc/nginx/nginx.conf test failed 

我在Ubuntu 10.04.3上使用官方的nginx PPA。 nginx版本1.0.9正在运行。

Nginxconfiguration基于一系列嵌套块。 应该只有一个http块。 这通常在/etc/nginx/nginx.conf中定义 – 所有包含的文件(例如,来自可用站点)包含在这个http块中。 为了设置默认/全部捕获主机,您只需要默认主机的服务器块部分。 这是通过向listen指令添加“default”来完成的。 另外,通常使用不匹配任何实名的server_name(通常是下划线(“_”)),但其他字符也可以接受。 如果您省略默认参数,则将第一个服务器块视为默认参数。 (有关更多信息,请参阅nginx的server_names指南 )

nginxconfiguration中的默认('original')nginxconfiguration可能包含nginx.conf中的一个默认(catch-all)服务器块,您可以configuration它。

至于第二个错误,确保'main'是在nginx.conf中定义的(一行应该以'log_format main …'开始(当然,检查你的括号)。你可以完全省略'access_log'一行如果您不希望对默认服务器的请求进行logging(或者可以通过定义新格式来更改格式)。