Назад | Перейти на главную страницу

Веб-сайт ASP.NET как подпапка на сервере PHP Nginx

Мои требования:
Мой веб-сайт -> 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
    }
}

Затем вам нужно будет установить разные корень для каждого блока локации.