См. Файл конфигурации nginx ниже.
Хостинг на основе виртуального имени (example.com), передача запросов для example.com и www.example com моно-процессу fastcgi на порт 9000 (127.0.0.1:9000)
Я добавил файл google-site-verify, но проблема в том, что 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;
#}
}
Местоположение над корневым определением может помочь
location /google79af7e588a34905e0.html {
alias /your/local/path/to/google79af7e588a34905e0.html;
}
без всякой перезаписи.
Я бы пошел на такую установку:
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
директива.
Однако для этой настройки нужен фактический файл в файловой системе.