如何使用nginx conf如果/ else语句?

有没有可能用nginx做这样的事情?

if ( $http_user_agent = "wget" ){ server { listen 11.11.11.11:1111; root /website1/; server_name example.com www.example.com; else server { listen 22.22.22.22:22222; root /website2/; server_name example2.com www.example2.com; } 

Nginx重写模块确实有指令 (请参阅链接文档的示例),但不是elseelse的等价物将会是所有没有被修改的if

您可以在server { }内部使用if但不能以其他方式使用。 如果在已经需要服务器的请求之前,甚至没有比较的条件。 在那里,当用户代理(或不是) wget时,您只能提供内容。

另外请注意, if在内部的location ,你不应该使用它,因为它可能不会按需要工作(请参阅如果是邪恶的 )。

在给定的表单中将无法正常工作:testingHTTP用户代理意味着请求已被接收。 这只有在某些server块已被定义的情况下才有可能。 你真的想要启动新的服务器,这取决于你在别处收到的请求的User-Agentstring吗?

如果你只是想要服务不同的内容,redirect到不同的path等,取决于请求的部分,如User-Agent,这是可能的,例如http://nginx.org/en/docs/http/ngx_http_rewrite_module。 HTML