8

我一直在摆弄 vNext 并让示例项目运行。我创建了一个 Ubuntu 虚拟机,安装了所需的软件包并使用k run(控制台应用程序)和k kestrel(MVC 应用程序)运行它。

现在,进入下一步:在专用网络服务器上运行多个项目。Kestrel(至少现在)只是一个用于 vNext 的简单开发网络服务器。它发展成一个成熟的网络服务器的机会似乎很小。

因此,我想让这个东西在 Apache 上运行。我猜 mod-mono 会在某个地方发挥作用。但是,目前我认为它还不支持最新的 vNext 框架。另一方面,我想我们会在某个地方需要 KRE。

有什么消息说我们很快就会在 Apache 上运行 ASP.NET 项目吗?有人设法做到了吗?

我对跨平台 .NET 应用程序的想法非常着迷。我现在的雇主在使用跨平台和开源软件的项目上进行了大量投资。我想提前获得一些知识,并尝试带头完全迁移到 Linux Web 服务器而不是 Windows 服务器。

谢谢!

4

1 回答 1

3

我很高兴看到我们有很多人试图让 vnext 在 Windows 环境之外运行:)

当然,您对红隼的看法是正确的。它可能最终会成为一个简单的 Web 服务器,就像它现在在 node.js Hello World 教程中工作一样。您可以尝试通过在后台运行它来将其用作生产环境 在网络服务器的后台运行 K Kestrel,然后通过 Apache Proxy 将请求传递给 kestrel

VirtualHost 示例代理对红隼的请求开始于 *:5004

<VirtualHost *:80>
ServerName example.com:80

ProxyRequests On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPreserveHost Off

ProxyPass / http://localhost:5004
ProxyPassReverse / http://localhost:5004

</VirtualHost>

但我不推荐上述解决方案。kestrel 存在一些问题,阻止您在 tty 外部发送输出,因此您无法在启动时使用启动脚本运行它。因此,只要您的服务器保持在线,您启动的网站就会持续存在 :)

我推荐的是使用 Docker。它是一种由 Microsoft 支持的 ASP.NET 包装器。在这个阶段你可以更好地利用它。

这里有更多信息

http://blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker.aspx

于 2015-04-09T22:49:18.500 回答