Мои требования:
Мой веб-сайт -> example.com - запускает платформу электронной коммерции Magento, созданную на PHP, работающую под сервером Nginx (в настоящее время Apache, но очень скоро перейдет на Nginx)
Другой веб-сайт -> example.com/abcd - abcd в настоящее время является другим веб-сайтом, работающим на ASP.NET
Другой веб-сайт -> example.com/xyz - в настоящее время xyz - это еще один веб-сайт, работающий на ASP.NET.
Я хочу сосуществовать веб-сайт PHP и ASP.NET на одном сервере с веб-сайтами ASP.NET, работающими как подпапка.
Задний план:
1. Веб-сайт Magento - это веб-сайт электронной коммерции, который нельзя переделывать.
2. ASP.NET - это корпоративный веб-сайт, который инвестирует деньги в веб-сайт электронной коммерции, и его нельзя перестроить, так как у них много корпоративных веб-сайтов, и каждый из них будет работать как подпапка на веб-сайте magento.
Исследовательская работа:
Вкратце посмотрел монопроект. Однако, насколько я понимаю, вам нужны отдельные домены и отдельные папки, чтобы PHP и ASP.NET существовали на одном сервере? Или я неправильно понимаю?
Может ли кто-нибудь здесь предоставить мне дополнительную информацию о том, можно ли это сделать. Если да, то в каком направлении мне нужно смотреть? Как указано в требованиях, я не могу перестроить (хотя и могу внести незначительные изменения) какой-либо корпоративный веб-сайт в PHP, поскольку они уже были сделаны, а их много. Также я знаю, что могу поместить поддомен http://abcd.example.com и сделать так, чтобы он указывал на другой сервер с IIS, но корпорации хотят, чтобы это был самый последний вариант.
Я работал как PHP-разработчик, поэтому плохо разбираюсь в ASP.NET. Так что будьте нежны :)
Я не очень хорошо знаком с тем, как запускать Mono в nginx, и я не хочу распространять FUD, но я не уверен, что установка абсолютно зрелая.
Если вы можете, вы можете рассмотреть возможность запуска всего в IIS на Windows Server. IIS имеет отличную поддержку PHP а IIS поддерживает отдельный запуск в подпапках нужным вам способом. Есть подробнее здесь.
Я не очень знаком с Mono, но смотрю на конфигурацию nginx для него (Mono под nginx fastcgi), должна быть возможность запускать как PHP-FPM, так и Mono через nginx, используя описанную вами настройку, используя такую конфигурацию, как:
server {
listen 80;
server_name example.com;
// PHP
location / {
index index.php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass localhost:9000; // php server/port
}
// ASP.NET 1
location /abcd {
index Default.aspx;
fastcgi_index Default.aspx;
include fastcgi_params;
fastcgi_pass localhost:9001; // mono server/port
}
// ASP.NET 2
location /xyx {
index Default.aspx;
fastcgi_index Default.aspx;
include fastcgi_params;
fastcgi_pass localhost:9002; // other mono server/port
}
}
Затем вам нужно будет установить разные корень для каждого блока локации.