为什么google-site-verification进入fastcgi-pass?

看下面的nginxconfiguration文件。
基于虚拟名称的托pipe(example.com),将example.com和www.example com的请求传递给端口9000上的mono fastcgi进程(127.0.0.1:9000)

我已经添加了文件谷歌网站validation,但问题是,asp.net fastcgi应用程序是一个MVC应用程序,所以它不会find名为“google79af7e588a34905e0.html”的控制器。

我试图覆盖虚拟主机configuration文件中的位置,所以它不会将请求的google79af7e588a34905e0.html转发到fastcgi应用程序,但它不起作用。

我已经重新启动nginx,但它没有区别…
我究竟做错了什么 ? 我已经尝试删除“位置= /”的等号,但这是行不通的,我已经尝试在主要位置之前移动位置覆盖,但这也没有什么差别。 我也改变了主机名称,只是为了看看我是否在正确的configuration文件,而我,当我更改域名,我开始得到404。

## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## server { listen 80; server_name www.example.com example.com; access_log /var/log/nginx/your.domain1.xyz.access.log; location / { root /home/example/www/homepage; #index index.html index.htm default.aspx Default.aspx; #fastcgi_index Default.aspx; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; } #http://serverfault.com/questions/477103/how-do-i-verify-site-ownership-on-google-webmaster-tools-through-nginx-conf location = /google79af7e588a34905e0.html { rewrite ^/(.*) $1; return 200 "google-site-verification: $uri"; } location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /shared_images { root /usr/share; autoindex off; } error_page 404 /CustomErrors/404.htm; # redirect server error pages to the static page /50x.html # #error_page 500 502 503 504 /50x.html; #location = /50x.html { # root /usr/share/nginx/www; #} } 

我会去这种设置:

 server { listen 80; server_name www.example.com example.com; access_log /var/log/nginx/your.domain1.xyz.access.log; root /home/example/www/homepage; try_files $uri $uri/ @mvc; location @mvc { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; } location /doc { alias /usr/share/doc; autoindex on; allow 127.0.0.1; deny all; } location /shared_images { alias /usr/share/shared_images; autoindex off; } error_page 404 /CustomErrors/404.htm; } 

这里我们使用nginx的try_files指令来检查文件是否存在于文件系统中。 如果文件不存在,则请求被传递给MVC后端。

我也用alias指令replace了位于内部的root指令,因为这使得configuration更加直观,至less我是这样看的。

这个设置也使得nginx服务器所有的静态资源,而不是让MVC后端处理这些请求。 您可能需要调整您的主server root指令。

这个设置需要文件系统上的实际文件。

根定义之上的位置可以做到这一点

 location /google79af7e588a34905e0.html { alias /your/local/path/to/google79af7e588a34905e0.html; } 

没有任何重写。