Comment déployer une application Web Rust sur Ubuntu • Linux et open source
La rouille est un langage de programmation connu pour ses performances élevées, sa sécurité mémoire sans collecteur de déchets et sa capacité à créer des applications rapides et efficaces. L’une des raisons pour lesquelles Rust devient de plus en plus populaire est sa facilité d’utilisation pour créer des applications Web avec divers cadres disponibles, tels que Actix Web et Rocket.
Rust a également Cargo, un excellent gestionnaire de construction et de package qui facilite la gestion des dépendances et la compilation des applications. En utilisant Crates.io, Rust a un vaste écosystème de bibliothèques (caisses), ce qui nous permet de créer des applications complexes avec un code minimal.
Dans ce tutoriel, nous créerons une application Web simple, la compilerons, puis la déployerons en utilisant Nginx comme proxy inverse.
Installez les dépendances et la rouille
Mettre à jour et installer les dépendances:
sudo apt mise à jour sudo apt install build-essentiel -y
|
Sudoaptemise à jour Sudoapteinstallerconstruire–essentiel–y |
Installez la rouille:
Curl -SSF | shot
|
bouclehttps://sh.rustup.rs -ssf | shot |
Vérifiez l’installation de la rouille et du fret:
rustup –version Rustc – Version Cargo – Version
|
rupture–version rouille–version cargaison–version |
La réponse résultante:
RUSTC 1.82.0 (F6E511EEC 2024-10-15) Cargo 1.82.0 (8F40FC59F 2024-08-21)
|
rouille1.82.0(f6e511eec2024–10–15) cargaison1.82.0(8f40fc59f2024–08–21) |
Faire une application de rouille
Créez un répertoire pour le projet Rust:
cargo nouveau Rustweb CD Rustweb
|
cargaisonnouveaurouille CDrouille |
Ouvrant le src / main.rs déposer:
Remplacez le contenu par le code suivant:
Utilisez std :: io :: prelude :: *; Utilisez std :: net :: {tcpListener, tcpStream}; fn handle_connection (mut stream: tcpStream) {let mut tampon = [0; 512]; Stream.read (& mut tampon) .unwrap (); Soit la réponse = “Http / 1.1 200 OK \ R \ ncontent-type: texte / html; charset = utf-8 \ r \ n \ r \ n
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
utiliserMST::Io::prélude::*; utiliserMST::filet::{Tcplisten,Tcpstre}; FNhandle_connection(moutonflux:Tcpstre){ laissermoutontampon=[0;512]; flux.lire(&moutontampon).déballer(); laisserréponse=“Http / 1.1 200 OK \ r \ ncontent-type: texte / html; charset = utf-8 \ r \ n \ r \ n Bonjour le monde! “; flux.écrire(réponse.as_bytes()).déballer(); flux.flush().déballer(); } FNprincipal(){ // lier le serveur à localhost: 8000 laisserauditeur=Tcplisten::lier(“127.0.0.1:8000”).déballer(); println!(“Serveur fonctionnant sur http://127.0.0.1:8000”); pourfluxdansauditeur.entrant(){ laisserflux=flux.déballer(); handle_connection(flux); } } |
Compilez l’application:
Le binaire de l’application sera situé dans Target / Release / Rustweb.
Créer un service
Création d’un fichier de service SystemD:
sudo nano /etc/systemd/system/rustweb.service
|
Sudonano/ /etc./ /systemd/ /système/ /rouille.service |
Contenu du fichier:
Description = Rust Web App After = Network.target
[Service]
User = yourUser Group = YourUser workingDirectory = / home / yourUser / RustWeb execstart = / home / yourUser / RustWeb / Target / Release / RustWeb Restart = toujours
[Install]
WantedBy = Multi-utilisateur.target
|
[Unit] Description=RouillerWebAppliquer Après=réseau.cible [Service] Utilisateur=votre utilisateur Groupe=votre utilisateur WorkingDirectory=/ /maison/ /votre utilisateur/ /rouille Exercice=/ /maison/ /votre utilisateur/ /rouille/ /cible/ /libérer/ /rouille Redémarrage=toujours [Install] Recherché par=multi–utilisateur.cible |
Activer le service:
Sudo Systemctl Daemon-Reload Sudo Systemctl Activer Rustweb Sudo Systemctl Start Rustweb Sudo Systemctl Status Rustweb
|
Sudosystemctldémon–recharger Sudosystemctlactiverrouille Sudosystemctlcommencerrouille Sudosystemctlstatutrouille |
Configuration Nginx
Installer nginx:
sudo apt install nginx -y
|
Sudoapteinstallernginx–y |
Créez le fichier de configuration Nginx:
sudo nano /etc/nginx/conf.d/rustweb.conf
|
Sudonano/ /etc./ /nginx/ /confli.d/ /rouille.confli |
Contenu du fichier:
Server {écouter 80; server_name example.com; emplacement / {proxy_pass proxy_set_header host $ host; proxy_set_header x-real-ip $ Remote_addr; proxy_set_header x-Forwarded-for $ proxy_add_x_forwarded_for; }}
|
serveur{ écouter80; server_nameexemple.com; emplacement/ /{ proxy_passhttp://127.0.0.1:8000; proxy_set_headerHôte$hôte; proxy_set_têteX–Réel–IP$Remote_addr; proxy_set_têteX–Transféré–Pour$proxy_add_x_forwarded_for; } } |
Redémarrer Nginx:
sudo systemctl redémarrer nginx
|
Sudosystemctlredémarragenginx |
Tester l’application
Ouvrez votre navigateur et visitez l’adresse:
Le résultat est le texte «Hello, World!».
Hasil pileg
Review Film
Berita Terkini
Berita Terkini
Berita Terkini
review anime
Gaming Center
Berita Olahraga
Lowongan Kerja
Berita Terkini
Berita Terbaru
Berita Teknologi
Seputar Teknologi
Berita Politik
Resep Masakan
Pendidikan
