Commencez par créer un dossier sur votre serveur Linux, par exemple nommé myweb. Pensez à définir correctement les permissions du dossier ; la valeur standard par défaut est 0755. 0755 correspond aux droits rwxr-xr-x :
Autres utilisateurs : Lecture et exécution uniquement (r-x)
Propriétaire (votre compte utilisateur) : Accès complet en lecture, écriture et exécution (rwx)
Membres du groupe : Lecture et exécution uniquement (r-x)
Ensuite, publiez votre projet depuis Visual Studio. Basculez d’abord sur la configuration de build Release et compilez le projet. Faites ensuite un clic droit sur votre projet et sélectionnez Publier. Une fois la publication terminée, copiez tous les fichiers générés du dossier de publication vers le répertoire myweb que vous venez de créer à l’aide d’un client FTP.
cd /usr/myweb
Après avoir transféré les fichiers, exécutez la commande ci-dessous pour lancer votre application en arrière-plan. Lorsqu’elle fonctionne en arrière-plan, le programme reste actif même si vous fermez la fenêtre de connexion SSH distante sur Linux.
sudo nohup dotnet yourprogramname.dll &Langage du code : CSS (css)
Le symbole & à la fin de la commande est essentiel pour l’exécution en arrière-plan. Sans lui, l’application s’exécute au premier plan : fermer le terminal ou appuyer sur Ctrl + C arrêtera immédiatement le programme.
Voici mon exemple concret : sudo nohup dotnet WebSite.dll &
Remarque importante complémentaire
Configurez vos ports avant la publication. Ouvrez le fichier appsettings.json présent dans votre projet .NET MVC.
Ajoutez la configuration ci-dessous comme modèle :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8080"
}
}
}
}Langage du code : JSON / JSON avec commentaires (json)
Cette configuration accepte les connexions depuis n’importe quelle adresse IP sur le port 8080. Vous pouvez alors utiliser Nginx comme proxy inverse pour router le trafic et héberger plusieurs domaines distincts sur un seul serveur Linux.
Si vous utilisez uniquement Nginx en tant que proxy inverse, inutile d’ouvrir ce port dans votre pare-feu. Dans ce cas, liez le service uniquement à l’adresse locale comme ceci :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://127.0.0.1:8080"
}
}
}
}Langage du code : JSON / JSON avec commentaires (json)
Avec ce paramétrage, l’application ne répond qu’aux requêtes locales et bloque toutes les connexions directes externes.
Mon objectif final est d’accéder à cette application via l’adresse abc.com/hello.
Exécutez ensuite sudo nohup dotnet WebSite.dll & pour démarrer l’application.
Vérifiez le bon fonctionnement de l’application avec cette commande : ps -aux | grep WebSite.dll
Si une entrée de processus s’affiche, cela confirme que le service a été lancé avec succès.
Configurer le proxy inverse Nginx (passez cette section si vous n’avez pas besoin du proxy)
Si Nginx est déjà installé sur votre machine, son fichier de configuration principal se trouve dans /etc/nginx/nginx.conf
Modifiez le fichier de configuration du site situé dans /etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/web/xxxx;
index index.html index.htm index.nginx-debian.html;
server_name _;
# Site principal
location / {
try_files $uri $uri/ =404;
}
# ✅ Point clé : rediriger /hello vers .NET
location /hello {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Langage du code : PHP (php)
Redémarrez Nginx après avoir enregistré les modifications
sudo nginx -t
sudo systemctl restart nginx
Redémarrez maintenant votre application .NET MVC
Tout d’abord, retrouvez le processus en cours avec ps -aux | grep WebSite.dll, puis relevez le numéro PID qui se trouve au début de la ligne correspondant à la commande sudo
Utilisez ce PID pour arrêter l’instance de .NET MVC en cours d’exécution.
Lancez à nouveau le service avec cette ligne : sudo nohup dotnet 你的项目.dll –urls http://127.0.0.1:8080 > /dev/null 2>&1 &
Il est maintenant temps de tester l’ensemble du système
Redémarrer Nginx
Exécutez la commande suivante :
bash
Entrez la commande :
sudo systemctl restart nginx
.NET écoute sur le port 8080
Utilisez la commande ci-dessous pour vérifier que le service .NET est actif :
bash
Entrez la commande :
curl http://127.0.0.1:8080
Langage du code : JavaScript (javascript)
Si du code HTML brut s’affiche dans votre terminal, l’application fonctionne correctement.
