witam. na co zwrócić uwagę przy wyborze hostingu dla ASP. NET. Mam takie parametry:
- Intel Xeon e5
- ram 2gb
- dysk NVMe 25gb
- łącza 150gbps
- virtualizacja KVM
- pełen dostęp root
Da się to uruchomić wraz z jakąś baza danych?
kzkzg napisał(a):
Nie, nie da rady klasycznego ASP .NET pod linuxem. Koledze wyżej pomyliło się z ASP .NET CORE.
Nie do końca. ASP NET Core to framework do budowania aplikacji webowych który może być użyty zarówno z .NET Framework jaki i .NET Core.
Natomiast jest jeszcze .NET Core - i to właśnie ten jak i aplikacje uruchomione na nim można uruchomić na platformie innej niż Windows.
tamtamtu napisał(a):
@codex zalezy od aplikacji - cos prostego z podstawowa baza danych bedzie na tym smigac. Jednak duzo ludzi, bardziej skomplikowane zapytania, duzo danych Ci to serwer sam bedzie prosil bys go usmiercil :)
dobra panowie widzę, że jesteśmy blisko rozwiązania moich dylematów:
@var napisałeś " Planując uruchomienie na platformie innej niż Windows trzeba pisać biblioteki albo w NET Core albo NET Standard" nie bardzo kumam więc zapytam tak:
czy jeżeli polecę wg schematu opisanego tutaj to będzie to napisane w NET Standard
i zadziała mi na hostingu linuxowym ?
@tamtamtu przewiduję tam raczej mały ruch ok 300 wejść/ rok. Trochę przesyłu grafiki od każdego zarejestrowanego usera ( szacuje max 10% wejść ). to wsio. nie chcę przepłacać.
hosting vps który opisałem jest na nazwa.pl za 6 zeta/ miesiąc. Możesz coś lepszego polecić w tej kwestii ?
300 wejsc/rok oraz 30 przesylan grafiki? Wystarczy - a raczej przeplacasz (zakladajac ze grafiki nie beda ogromne - zeby miejsca w bazie wystarczylo). Przy czyms takim moglbys sie zastanowic nad serverless - auzre swojego czasu dawal pule do wykorzystania ktora powinna Ci wystaczyc na tak maly ruch (wymaga to "tylko" napisania aplikacji w odpowiedni sposob).
Co do serwerow to niestety nie kojarze nic
Spróbuj HostedWindows
Całkiem spoko serwerek.
Ktos napisał(a):
Jeżeli chcesz na takim serwerze, jaki napisałeś, uruchomić Windows (z IIS) to po pierwsze: trochę mało RAM-u, po drugie: nie da się, bo to KVM. Musisz szukać konkretnie VPS z Windows.
a gdybym to przepisał wszystko do ASP.NET Core ? też nie pójdzie ? może się to da bez IIS wszystko odpalić w końcu to ma być multiplatformowa technologia hmm ?
Jak masz aplikację ASP.NET Core i nie używasz rzeczy związanych konkretnie z Windows, to możesz to odpalić na Linuksie, używając Kestrela ("wbudowanego" serwera) lub jakiejś innej kombinacji (np. Kestrel + nginx jako reverse proxy), lub odpalić na Windows z wykorzystaniem Kestrela, IIS Express albo "zwykłego" IIS.
I na takim serwerze pójdzie bez problemu - mam tak odpalone kilka rzeczy, w konfiguracji Kestrel+nginx, na Ubuntu.
Uwaga: jest jeszcze baza danych - jakiejś pewnie używasz; jest MSSQL dla Linuksa, ale nigdy go nie używałem, używam MariaDB ;)
Jeżeli chcesz odpalić aplikację ASP.NET nie-Core, to albo: użyjesz Windows+IIS, albo szczęście i ci zadziała z wykorzystaniem jakiejś kombinacji typu XSP + nginx, albo mod_mono do Apache albo czegoś takiego - raz w życiu użyłem i prosta aplikacja testowo mi zadziałała :)
Widzę dużo problemów z tym uruchomieniem.
Wersja prosta, łatwa i nie do końca idealna na produkcję:
Instalujesz dotneta w Ubuntu, klikasz "publish" w Visual Studio, kopiujesz pliki, dajesz komendę dotnet WebApplication1.dll
- no faktycznie, problemów bez liku.
Tutaj masz poradnik krok-po-kroku, który omawia aplikację, reverse proxy, systemd i inne rzeczy, które się mogą przydać: https://docs.microsoft.com/pl-pl/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2
http://localhost:5000
. Aczkolwiek wystarczy jej wymusić, np. dotnet run --urls http://*:5000
i voila: http://167.71.53.47:5000/. Wystartować na 80 też można, tylko to trzeba z roota zrobić :) @codex: Tam w tutorialu jest to, co musisz wrzucić do pliku konfiguracyjnego nginxa.
Jest jeszcze opcja uruchamiania .NET Core w dockerze. Osobiście byłem sceptyczny do tego, bo wprowadza to dodatkowy poziom skomplikowania, ale finalnie myślę, że usprawnia utrzymanie aplikacji zwłaszcza jak jest ich kilka i działają na różnych wersja .NET Core.
wpisałem w pliku launchSettings.json:
"applicationUrl":https://wlasneip:5001
Działa :) panowie Działa !
po wpisaniu w wyszukiwarkę "https://wlasneip:5001" ale trzeba zaakceptować "niebezpieczne połączenie - z tym chyba sobie poradzę.
Większym problemem bd chyba to połączenie domeny z IP serwera. @Ktos tak wiem pisałeś naprowadzające słowa ale nawet nie wiem czego to dotyczy - czy chodzi o konfiguracje domeny w panelu mojego hostingu ?
Rekordzie A
adres ip
http
na http
to pozbędziesz się "niezbezpiecznego" (bo certyfikat jest self-signed) połączenia (na rzecz braku szyfrowania w ogóle). Co do rekordu A - zależy gdzie masz "zaparkowaną" domenę, ale w panelu domeny się to ustawia na jaki adres ona wskazuje. Co do hostingu: VPS-y polecam na ovh.pl, domeny też kupuję na ovh.pl (i mają całkiem dobry panel do nich), ale część domen mam zaparkowane na cloudflare, który daje też nieco więcej możliwości.
Grzegorz ŚwidwaGrzegorz Świdwa