Я установил mono платформу на свой сервер Linux и смог запустить ее за HTTP-сервером nginx.Система работает хорошо и без проблем работает с динамическими файлами .NET.
Однако я хочу передать только (и только) необходимые файлы (по расширению) в моно и позволить nginx обрабатывать все остальные файлы, включая статические, и файлы, которые не должны обслуживаться в нормальных условиях в .NETПлатформа.Я настроил свой nginx, как показано ниже, но - поскольку у меня недостаточно знаний о платформе .NET - я не уверен, какие расширения должны должны быть переданы в моно, а какие должны быть запрещены.
Вот соответствующая часть моего файла конфигурации nginx:
# Do not pass .NET forbidden extensions to anywhere.
# Theese are the extensions that should not be served to the clients
location ~ \.(config|dbml|dll|master|other|forbidden|exts)$ {
deny all;
}
А вот часть конфигурации, которая передает требуемые (только обязательные) файлы в моно:
# Theese are the extensions which *must* be handled by mono
location ~ \.(aspx|cs|other|exts|that|must|be|handled|by|mono)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
fastcgi_index default.aspx;
}
# Other static files will be handled by nginx.
Я нашел некоторые специфичные для .NET расширения файлов из записи в Википедии , но они далеки от завершения.
Поэтому у моего вопроса есть три подвопроса:
- Что такое расширения файлов для платформы .NET?
- Какие из них должны обрабатываться ядром .NET?
- Какие из них являются конфиденциальными и не должны передаватьсяклиенты?
Это будет среда общего хостинга, поэтому любое отсутствующее расширение может привести к нежелательным последствиям для пользователя (например, раскрытие паролей пользователя или настроек приложения).