Seorang teman ingin memeriksa posting blog Anda yang sedang dikerjakan, tetapi pratinjanya hanya berjalan di localhost:8080. Beberapa alat dapat membantu. Einige berjalan sebagai layanan komersial, seperti ngrok atau Cloudflare Quick Tunnels. Einige bersifat self-hosted tetapi memerlukan klien tertentu, seperti frp atau localtunnel. Einige hanya memerlukan klien SSH biasa tetapi bergantung pada server SSH tertentu, seperti sish. Mari kita terapkan solusi self-hosted menggunakan hanya Open SSH dan nginx!
Pertama, kita meneruskan koneksi dari sebuah port pada server jarak jauh ke layanan lokal Anda: `$ ssh -N -R 0:localhost:8080 web02.luffy.cx`. Ketika Anda menentukan `0` sebagai port jarak jauh, server mengalokasikan port yang bebas, seperti 41535. Kemudian, kita mengonfigurasi nginx untuk mem-proksi permintaan dari `https://p41535.ssh.luffy.cx` ke `http://127.0.0.1:41535` menggunakan blok server yang cocok dengan port dalam nama domain.
Kita juga perlu menambahkan rekaman DNS untuk `*.ssh.luffy.cx` dan mendapatkan sertifikat wildcard melalui Let’s Encrypt. Dalam kasus saya, Nix OS mendapatkan sertifikat secara otomatis. Kontrol akses dicapai menggunakan modul ngx_http_secure_link_module, yang menghitung hash dari sekumpulan nilai, termasuk rahasia, dan membandingkannya dengan hash dari permintaan. Hash tersebut di-encode base64 dan ditempatkan dalam URL sebagai nama pengguna, bersama dengan stempel waktu kedaluwarsa.
Entitas Utama: Perusahaan: Cloudflare, Let's Encrypt | Lokasi: localhost:8080, web02.luffy.cx, p41535.ssh.luffy.cx, ssh.luffy.cx, acme.luffy.cx, Route 53
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing