我正在试图找出如何为我的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
Nginx配置基于一系列嵌套块.应该只有一个http块.这通常在/etc/Nginx/Nginx.conf中定义 – 所有包含的文件(例如来自可用站点)都包含在此http块中.要设置default / catch-all主机,您只需要默认主机的服务器块部分.这是通过向listen指令添加’default’来实现的.此外,通常使用不匹配任何实名的server_name – 通常是下划线(“_”),但也可以接受其他字符.如果省略默认参数,则将第一个服务器块视为默认值. (有关更多信息,请参阅Nginx的
guide to server_names)
原文链接:https://www.f2er.com/ubuntu/348865.html默认情况下(在此上下文中为’original’)Nginx配置可能包含Nginx.conf中的默认(全能)服务器块,您可以配置它.
至于第二个错误,确保在Nginx.conf中定义’main'(一行应该以’log_format main …’开头(当然,检查你的括号).你可以完全省略’access_log’行如果您不希望记录对默认服务器的请求(或者可以通过定义新格式来更改格式).