2015-02-20 23 views
8

Tôi đã không quan tâm đến vNext một chút và có các dự án mẫu chạy. Tôi tạo ra một máy ảo Ubuntu, cài đặt các gói cần thiết và tất cả đều chạy với k run (ứng dụng giao diện điều khiển) và k kestrel (ứng dụng MVC).vNext trên máy chủ web Apache

Bây giờ, hãy thực hiện bước tiếp theo: chạy một số dự án trên máy chủ web chuyên dụng. Kestrel là (ít nhất là bây giờ) chỉ là một máy chủ web phát triển đơn giản được sử dụng cho vNext. Rất có thể nó sẽ phát triển thành một máy chủ web toàn diện có vẻ nhỏ.

Vì vậy, tôi muốn có được thứ đang chạy trên Apache. Tôi đoán mod-mono sẽ đi vào một nơi nào đó. Tuy nhiên, tại thời điểm này tôi không nghĩ rằng nó hỗ trợ khung vNext mới nhất được nêu ra. Mặt khác, tôi đoán chúng ta sẽ cần KRE ở đâu đó.

Bất kỳ tin tức nào ở đó rằng chúng tôi sẽ chạy các dự án ASP.NET trên Apache bất cứ lúc nào sớm? Bất cứ ai quản lý để làm điều đó?

Tôi bị cuốn hút bởi ý tưởng về các ứng dụng .NET nền tảng chéo. Chủ nhân hiện tại của tôi đang đầu tư rất nhiều vào các dự án sử dụng phần mềm đa nền tảng và nguồn mở. Tôi muốn đạt được một số kiến ​​thức trước và cố gắng dẫn đầu trong việc di chuyển hoàn toàn sang các máy chủ web Linux thay vì các máy chủ Windows.

Cảm ơn!

+0

Ok ... tôi vẫn chưa tìm ra giải pháp cho Apache. Tuy nhiên, nginx là một lựa chọn tuyệt vời cho Apache và bạn có thể cấu hình nó thành proxy cho máy chủ kestrel: http://pkula.blogspot.be/2015/01/production-ready-aspnet-5-mvc-vnext-on .html Nó xa hoàn hảo nhưng đó là một bước đi đúng hướng. – Nullius

Trả lời

3

Tôi vui mừng khi thấy có rất nhiều người trong chúng ta cố gắng để có được vNext lên và chạy ra ngoài môi trường Windows :)

Tất nhiên bạn có quyền về Kestrel. Nó có thể sẽ kết thúc như một máy chủ web đơn giản giống như nó hoạt động ngay bây giờ trong hướng dẫn Hello.js của node.js. Bạn có thể cố gắng sử dụng nó như là một môi trường sản xuất bằng cách chạy nó trong nền Running K Kestrel in the background trên một máy chủ web và sau đó vượt qua các yêu cầu để Kestrel bởi Apache Proxy

VirtualHost yêu cầu ví dụ proxy để Kestrel bắt đầu vào *: 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> 

Nhưng tôi không đề nghị giải pháp trên. Có một số vấn đề với kestrel ngăn cản bạn gửi một đầu ra bên ngoài tty và do đó bạn không thể chạy nó khi khởi động với tập lệnh khởi động. Vì vậy, trang web bạn đã bắt đầu sẽ kéo dài miễn là máy chủ của bạn vẫn trực tuyến :)

Tôi khuyên bạn nên sử dụng Docker. Đó là loại trình bao bọc cho ASP.NET đang được hỗ trợ bởi Microsoft. Bạn có thể sử dụng tốt hơn trong giai đoạn này.

Dưới đây là biết thêm

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

+1

Xin lỗi, nhưng tôi không hiểu làm thế nào để Docker có thể giúp chạy Asp.net 5 trên Apache. Bạn có thể giải thích thêm được không? – Donald

+1

Hi @Donald Tôi thấy những gì bạn đang suy nghĩ về. Vấn đề là - bạn không thể chạy * trực tiếp * ứng dụng ASP.NET 5 dưới máy chủ web Apache. Những gì bạn có thể làm là tạo một Proxy Apache và chuyển yêu cầu đến máy chủ Kestrel. Nhưng giải pháp được khuyến nghị là sử dụng docker insted. Theo liên kết mà tôi đính kèm bạn có thể tìm thấy một hướng dẫn tốt đẹp cho thấy làm thế nào để làm cho nó hoạt động trong môi trường Linux. Bạn cũng có thể kiểm tra http: //www.mono-project.com/docs/about-mono/compatibility/đó là một thực thi OpenSource của .NET nếu chúng hỗ trợ 4.6, có thể chạy ứng dụng dưới Apache –

Các vấn đề liên quan