Nginx
為什麼 google-site-verification 進入 fastcgi-pass ?
請參閱下面的 nginx 配置文件。
基於虛擬名稱的託管 (example.com),將 example.com 和 www.example com 的請求傳遞給埠 9000 (127.0.0.1:9000) 上的單聲道 fastcgi-process
我添加了文件 google-site-verification,但是問題是,asp.net fastcgi-application 是一個 MVC 應用程序,所以它沒有找到名為“google79af7e588a34905e0.html”的控制器。
我正在嘗試覆蓋虛擬主機配置文件中的位置,因此它不會將 google79af7e588a34905e0.html 的請求轉發到 fastcgi 應用程序,但它不起作用。
我已經重新啟動了 nginx,但它沒有任何區別……
我做錯了什麼?我嘗試刪除“location = /”中的等號,但這不起作用,我嘗試在主要位置之前移動位置覆蓋,但這也沒有什麼區別。我還前後更改了主機名,只是為了看看我是否在正確的配置文件中,而且當我更改域名時,我開始得到 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 後端。我還用
root
指令替換了位置內部的alias
指令,因為這使配置更直覺,至少我是這樣看的。此設置還使 nginx 伺服器成為所有靜態資產,而不是讓 MVC 後端也處理這些請求。您可能需要調整主
server
塊root
指令。但是,此設置需要文件系統上的實際文件。