我的要求:
我的网站 – > example.com – 运行在Nginx服务器下运行的PHP构build的Magento电子商务平台(目前是Apache,但很快转移到Nginx)
另一个网站 – > example.com/abcd – abcd目前是运行在ASP.NET上的另一个网站
另一个网站 – > example.com/xyz – xyz是目前运行在ASP.NET上的另一个网站
我想在1台服务器上共存PHP和ASP.NET网站,ASP.NET网站作为子文件夹运行。
背景:
1. Magento网站是一个不能重build的电子商务网站。
2. ASP.NET是一个企业网站,投资金钱到电子商务网站,它不能重新build立,因为他们有许多企业网站,每个将作为子文件夹运行到magento网站。
研究:
简单地看单声道项目。 但是从我的理解你需要有单独的域和单独的文件夹的PHP和ASP.NET存在1台服务器上? 或者我的理解错了?
任何人都可以在这里提供更多关于这是否可以完成的信息。 如果是这样,我需要看什么方向? 正如在要求中提到的,我不能重新构build任何企业网站(尽pipe可以做出微小的改变),因为它们已经完成,并且它们中的许多。 另外我知道我可以把一个子域http://abcd.example.com,并使其指向另一台服务器与IIS,但企业希望作为最后一个选项。
我的背景是作为一个PHP开发人员,所以我对ASP.NET的理解很less。 所以请温柔:)
我对Mono并不是很熟悉,但是查看nginx的configuration( 在nginx的fastcgi下是Mono) ,应该可以通过nginx使用你所描述的设置运行PHP-FPM和Mono,使用如下configuration:
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 } }
然后您将不得不为每个位置块设置不同的根 。
我不是很熟悉如何在nginx中运行单声道,我不想传播FUD,但我不确定这个设置是否完全成熟。
如果可以的话,您可能需要考虑在Windows Server上的IIS中运行一切。 IIS具有出色的PHP支持 ,IIS支持以您需要的方式在子文件夹中单独运行。 这里有更多的信息 。