Rust adalah bahasa pemrograman yang dikenal dengan kinerja tinggi, keamanan memori tanpa pengumpul sampah dan kemampuannya untuk membangun aplikasi yang cepat dan efektif. Salah satu hal yang membuat karat lebih populer adalah kemudahan penggunaan untuk membangun aplikasi web dengan berbagai bingkai yang tersedia, seperti Web Actix dan Rocket.
Rust juga memiliki beban, manajer konstruksi dan paket yang sangat baik yang memfasilitasi manajemen kecanduan dan kompilasi aplikasi. Menggunakan Crates.io, Rust memiliki ekosistem perpustakaan yang sangat besar (Crate), memungkinkan kami untuk membangun aplikasi yang kompleks dengan kode kecil.
Dalam tutorial ini kami hanya akan membuat aplikasi web dengan Rust, kami akan mengkompilasinya dan kemudian kami akan memperluasnya dengan bantuan Nginx sebagai proxy pengembalian.
Pasang kecanduan dan karat
Perbarui dan instal dependensi:
sudo apt update sudo apt install build -sential -y
|
Sudo Aplikasi Memperbarui Sudo Aplikasi Instalasi konstruksi–penting –y |
Pemasangan karat:
Curl -ssf | sh
|
Curle https://sh.rustup.rs -ssf | sh |
Memeriksa pemasangan karat dan beban:
Rustup -erersion Rustc -version Cargo –
|
Tinggi –Versi Rustc –Versi memuat –Versi |
Jawaban yang dihasilkan:
Rustc 1.82.0 (F6E511EEC 2024-10-15) Muat 1.82.0 (8F40FC59F 2024-08-21)
|
Rustc 1.82.0 (S)F6e511eec 2024–10–15)) memuat 1.82.0 (S)8F40FC59F 2024–08–21)) |
Buat aplikasi untuk karat
Membuat direktori proyek karat:
memuat cd rustweb rustweb baru
|
memuat Baru Kelainan CD Kelainan |
Buka file src/main.rs:
Ganti konten dengan kode berikut:
Gunakan std :: io :: prelude ::*; Gunakan std :: net :: {tcplostener, tcpstream}; fn handle_connection (aliran mut: tcpstream) {biarkan mut buffer = [0; 512]; Stream.read (& mut buffer) .unwrap (); Biarkan jawaban = “http/1.1 200 ok \ r \ ncontent-tipe: teks/html; charset = utf-8 \ r \ n \ n \ n
Hai, dunia! “; Stream.write (balasan (” Server yang bekerja untuk mengalir di listener.incoming () {let stream = stream.unwrap (); handle_connection (stream);}}|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
menggunakan std::io::prelude::*; menggunakan std::bersih::{Tcplisten., Tcpstream}; fn handle_connection(S)Mout mengalir: Tcpstream)) { Membiarkan Mout penyangga = [0; 512]; mengalirSMembaca(S)&Mout penyangga))SUNRAP(S))); membiarkan Tanggapan = “Http/1.1 200 ok \ r \ ncontent-tipe: Teks/html; charset = utf-8 \ r \ n \ n \ n mengalirSMenulis(S)TanggapanSas_bytes(S)))))SUNRAP(S))); mengalirSPencucian(S)))SUNRAP(S))); } fn Utama(S))) { // ikat server ke localhost: 8000 membiarkan pendengar = Tcplisten::koneksi(S)“127.0.0.1:8000”))SUNRAP(S))); printlnLai(S)“Server yang bekerja di http://127.0.0.1:8000”)); untuk mengalir di dalam pendengarSmasuk(S))) { membiarkan mengalir = mengalirSUNRAP(S))); handle_connection(S)mengalir)); } } |
Kompilasi Aplikasi:
Aplikasi biner akan disertakan Target/Rilis/Rustweb
Lakukan layanan
Membuat Layanan File:
sudo nano /etc/systemd/system/rustweb.service
|
Sudo Nano / / /dll./ / /Systemd/ / /sistem/ / /KelainanSmelayani |
Mengajukan:
Description = Web App Rust After = Network.Target
[Service]
User = YourUser Group = YourUser WorkingDirectory =/Home/YouSer/RustWeb EXECSTART =/HOME/YOUSER/RUSTWEB/TARGET/RESET/RUSTWEB RESTART = Selalu
[Install]
Wantyby = multi-eser.target
|
[Unit] Keterangan=Karat Web Aplikasi Setelah=jaringanSTujuan [Service] Pengguna=Ruzer Anda Kelompok=Ruzer Anda WorkingDirectory=/ / /Awal/ / /Ruzer Anda/ / /Kelainan EXECSTART=/ / /Awal/ / /Ruzer Anda/ / /Kelainan/ / /Tujuan/ / /melepaskan/ / /Kelainan Restart=selalu [Install] Ingin=Multi–PenggunaSTujuan |
Aktifkan Layanan:
Sudo Systemctl Daemon-Relad Sudo Systemctl Enable
|
Sudo Systemctl setan–Isi ulang Sudo Systemctl pengaktifan Kelainan Sudo Systemctl Awal Kelainan Sudo Systemctl Status Kelainan |
Konfigurasi nginx
Instal Nginx:
sudo apt install nginx -y
|
Sudo Aplikasi Instalasi Nginx –y |
Membuat file konfigurasi nginx:
sudo nano /etc/nginx/conf.d/rustweb.conf
|
Sudo Nano / / /dll./ / /Nginx/ / /confSdia/ / /KelainanSconf |
Konten File:
server {dengarkan 80; Server_name example.com; Lokasi / {proxy_pass proxy_set_header host $ host; Proxy_set_header x-real-up $ remote_addr; Proxy_set_header X-forwarded-for $ proxy_add_x_forwarded_for; }}
|
server { Mendengarkan 80; Server_name ContohScom; Lokasi / / / { proxy_pass http://127.0.0.1:8000; Proxy_set_header Tuan rumah $tuan rumah; proxy_set_header X–Sebenarnya–AKU P $remote_addr; proxy_set_header X–Dirujuk–Untuk $proxy_add_x_forwarded_for; } } |
Restart nginx:
Sudo Systemctl restart nginx
|
Sudo Systemctl restart Nginx |
Tes aplikasi
Buka browser dan kunjungi alamatnya:
Hasilnya adalah teks “Halo, dunia!”.
Semoga beruntung