Τι είναι εγκατεστημένο στον server ASP.NET;
- .NET 10 LTS SDK, μαζί με το runtime ASP.NET Core, από τα πακέτα του Ubuntu 24.04
- Ένα δείγμα έργου Razor Pages: ο πηγαίος κώδικας στο /home/app/uygulama/kaynak, η έξοδος στο /home/app/uygulama/yayin
- Μια υπηρεσία systemd με όνομα uygulama, που τρέχει ως χρήστης app χωρίς προνόμια, σε Production, στο 127.0.0.1:5000
- Nginx ως reverse proxy, με ρυθμισμένες κεφαλίδες WebSocket και όριο σώματος αιτήματος 64 MB
- Πιστοποιητικό Let's Encrypt από το certbot για τη διεύθυνση sslip.io, που ανανεώνεται αυτόματα
- 1 GB swap, μαζί με git
- Ανοιχτές προς τα έξω μόνο οι θύρες 22, 80 και 443, ενώ η θύρα 5000 του Kestrel μένει εσωτερική
Τι μέγεθος χρειάζεστε για το ASP.NET;
Η Microsoft δεν δίνει έναν αριθμό RAM για το ASP.NET Core, επειδή εξαρτάται από την εφαρμογή σας. Ως γενικός κανόνας, 1 GB είναι αρχή για να τρέξει μια μικρή μεταγλωττισμένη εφαρμογή. Αν θα τρέχετε dotnet publish στον server, τα 2 GB είναι πιο άνετα, ακόμη και με το 1 GB swap που προσθέτει αυτή η εγκατάσταση. Για Entity Framework και πιο φορτωμένα έργα, σκεφτείτε 4 GB. Η RAM και η CPU μεγαλώνουν ξεχωριστά από το πάνελ σας· ο server επανεκκινείται μία φορά και τα δεδομένα και η IP σας μένουν ίδια.
| Χρήση | Μέγεθος | Τιμή | Επιλογή |
|---|---|---|---|
| Εισαγωγικό | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/μήνα | |
| Μεσαίο | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/μήνα | |
| Ισχυρό | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/μήνα |
Για ποιον είναι;
- Έργα φτιαγμένα με ASP.NET Core MVC, Razor Pages, Web API ή Blazor Server
- Ομάδες που θέλουν να τρέχουν .NET σε Linux χωρίς IIS
- Pipelines που χτίζουν με dotnet publish και στέλνουν το αποτέλεσμα στον δικό τους server
- Εφαρμογές με πελάτες στην Τουρκία που πρέπει να τρέχουν από την Κωνσταντινούπολη
Τι γίνεται μετά την παραγγελία;
- Ορίστε το μέγεθος και ολοκληρώστε την πληρωμή.
- Ο server σας ξεκινά και το .NET και το Nginx εγκαθίστανται μόνα τους. Στις δοκιμές μας σε πραγματικούς servers αυτό πήρε περίπου 3,5 λεπτά.
- Στην καρτέλα Επισκόπηση ανοίξτε τον σύνδεσμο Διεύθυνση ιστοτόπου. Εμφανίζεται η δείγμα σελίδα Razor.
- Συνδεθείτε μέσω SSH, τρέξτε su - app, φέρτε το έργο σας και τρέξτε dotnet publish -c Release -o ~/uygulama/yayin.
- Ως root, στο /etc/systemd/system/uygulama.service, αντικαταστήστε το kaynak.dll στη γραμμή ExecStart με το δικό σας αρχείο.
- Τρέξτε systemctl daemon-reload και systemctl restart uygulama και μετά ανανεώστε τον ιστότοπο.
Με κάθε server
- Ημερήσιο αντίγραφο ασφαλείας στην τιμή
- Απεριόριστη κίνηση
- Πλήρης πρόσβαση root
- Αναβαθμίστε ή μειώστε RAM και CPU αργότερα και μεγαλώστε τον δίσκο
- Τοποθεσία: Istanbul · IST-1.
Καλό είναι να ξέρετε
- Παλαιότερες εφαρμογές .NET Framework και Web Forms δεν τρέχουν σε Linux. Αυτός ο server είναι για .NET 10 και ASP.NET Core, οπότε αυτά τα έργα χρειάζονται πρώτα μεταφορά.
- Είναι εγκατεστημένο μόνο το .NET 10. Για ένα έργο που στοχεύει το net8.0, ανεβάστε τον στόχο, εγκαταστήστε εκείνο το runtime ή δημοσιεύστε το ως self-contained.
- Το Kestrel ακούει στη θύρα 5000. Αν την αλλάξετε, ενημερώστε μαζί το ASPNETCORE_URLS στο αρχείο της υπηρεσίας και τη γραμμή proxy_pass στο Nginx.
- Δεν είναι εγκατεστημένη βάση δεδομένων. Βάλτε το connection string στις ρυθμίσεις της εφαρμογής ή στο αρχείο της υπηρεσίας ως μεταβλητή περιβάλλοντος.
- Η Microsoft ζητά να φυλάσσετε τα κλειδιά προστασίας δεδομένων σε μόνιμο χώρο αποθήκευσης, ώστε τα cookies σύνδεσης να παραμένουν έγκυρα μετά από επανεκκίνηση.
- Αν δεν μπορεί να εκδοθεί πιστοποιητικό, ο ιστότοπος ανοίγει μέσω http στη διεύθυνση IP σας. Οι ενημερώσεις του .NET και της εφαρμογής σας είναι δική σας ευθύνη.
Ερωτήσεις και απαντήσεις για το ASP.NET
Πόση RAM χρειάζεται το ASP.NET;
Η Microsoft δεν έχει έναν μοναδικό αριθμό RAM για το ASP.NET Core. Ως γενικός κανόνας, 1 GB είναι καλή αρχή για μια μικρή μεταγλωττισμένη εφαρμογή, 2 GB αν χτίζετε στον server και 4 GB για πιο φορτωμένα έργα με Entity Framework. Αν δεν αρκεί, αναβαθμίζετε από το πάνελ σας.
Μπορεί το ASP.NET να τρέξει σε VPS Linux;
Το ASP.NET Core μπορεί. Αυτός ο server τρέχει .NET 10 σε Ubuntu 24.04, με την εφαρμογή σας στο Kestrel και το Nginx να της προωθεί τα αιτήματα, οπότε δεν χρειάζεται IIS. Οι παλαιότερες εφαρμογές .NET Framework είναι άλλη υπόθεση, επειδή τρέχουν μόνο σε Windows.
Ποια έκδοση .NET υπάρχει στον server;
Είναι εγκατεστημένο το .NET 10 SDK και το runtime έρχεται μαζί του. Αν στοχεύετε άλλη έκδοση, εγκαταστήστε εκείνο το runtime ή δημοσιεύστε το έργο σας ως self-contained, ώστε να φέρνει το δικό του runtime στον server.
Πώς κάνω deploy την εφαρμογή ASP.NET;
Ως χρήστης app, τρέξτε dotnet publish -c Release -o ~/uygulama/yayin ή αντιγράψτε το αποτέλεσμα του publish σε αυτόν τον φάκελο από τον υπολογιστή σας. Αλλάξτε το όνομα του dll στο uygulama.service και μετά τρέξτε systemctl daemon-reload και systemctl restart uygulama.
Θα τρέξει η εφαρμογή μου Web Forms ή MVC 5;
Όχι. Τα Web Forms και το MVC 5 χρειάζονται .NET Framework, που υπάρχει μόνο στα Windows. Για αυτά, διαλέξτε server με Windows Server και εισαγάγετε τη δική σας άδεια ή μεταφέρετε το έργο σε ASP.NET Core.
Πώς συνδέω το δικό μου domain με έναν server ASP.NET;
Κατευθύνετε την εγγραφή A του domain σας στη διεύθυνση IP του server και μετά τρέξτε certbot --nginx -d yourdomain.com. Το πιστοποιητικό εκδίδεται και ανανεώνεται μόνο του.
Είναι εγκατεστημένος ο SQL Server και ποια βάση δεδομένων να χρησιμοποιήσω;
Δεν είναι εγκατεστημένη βάση δεδομένων. Με το Entity Framework μπορείτε να συνδεθείτε σε SQL Server σε άλλο μηχάνημα ή να εγκαταστήσετε εδώ μια βάση όπως η PostgreSQL. Αν θέλετε ξεχωριστό server, προσφέρουμε και έναν με εγκατεστημένη PostgreSQL.