Membuat Record Domain untuk Mengarahkan ke Server Rumah Anda dengan Cloudflare Menggunakan Nginx Proxy Manager

enter image description here
Silakan lihat halaman “Setup Domain Anda dengan Cloudflare” sebelum memulai di sini.

Metode ini paling cocok untuk mereka yang memiliki alamat IP statis atau sewa jangka panjang. Kami menggunakan Verizon FioS dan belum pernah melihat perubahan IP WAN kami dan kami tidak membayar untuk IP statis. Mungkin kami hanya beruntung. Tetapi bagaimanapun juga, saya akan mengatur ini sehingga jika IP kami berubah, yang harus kami lakukan hanyalah mengubah satu record untuk semua yang lain mengikuti.

Kami akan menggunakan Nginx Proxy Manager untuk mengelola host dan sertifikat SSL kami. Saya menemukan bahwa ini adalah aplikasi yang paling ramah pengguna untuk tujuan ini. Lebih khusus, saya menggunakan gambar docker jlesage/docker-nginx-proxy-manager.

Sebelum Memulai dengan Nginx Proxy Manager

Bagian 1

Saya ingin menekankan bahwa lebih baik menjalankan Nginx Proxy Manager pada mesin, VM, atau container yang dedikasi. Dengan cara ini, kita memiliki akses ke port 80 dan 443 di mesin sehingga tidak akan ada konflik dengan port lain. Port 80 dan 443 adalah SATU-SATUNYA port yang harus kita buka pada router untuk mengatur dan mengoperasikan ini. Ini memungkinkan kita untuk membuat lebih banyak layanan di jaringan kita dan mengakses mereka dari internet TANPA membuka lebih banyak port untuk layanan tersebut secara remote. Sangat keren, bukan?

Hal lain yang perlu diperhatikan adalah jika mesin ini mati, semua host akan mati bersamanya. Itulah mengapa penting untuk memisahkan ini dari kegiatan lain Anda.

Saya menjalankan Nginx Proxy Manager di container LXC di Proxmox tetapi saya tidak akan membahas aspek setup tersebut.

Bagian 2

Nginx Proxy Manager bekerja sama dengan Docker. Docker memungkinkan kita untuk menginstal layanan dan aplikasi serta menetapkan port selama instalasi. Port-port ini adalah yang kita gunakan untuk mengalirkan lalu lintas saat kita mengekspos mereka menggunakan Nginx Proxy Manager. Panduan ini mengasumsikan Anda sudah mengerti cara menggunakan Docker. Penting untuk memahami dasar-dasar Docker sebelum melangkah lebih jauh.

Membuat Kontainer Docker

Mulailah dengan menjalankan perintah compose berikut. Saya menggunakan Portianer untuk manajemen yang lebih mudah, tetapi Anda juga bisa meletakkan file compose di mesin Anda dan menjalankan docker-compose up -d.

docker run -d \
--name=nginx-proxy-manager \
-p 8181:8181 \
-p 80:8080 \
-p 443:4443 \
-v /docker/appdata/nginx-proxy-manager:/config:rw \
jlesage/nginx-proxy-manager

Setelah selesai menginstal, Anda dapat mengakses UI web di port 8181 di mana Anda akan diminta untuk login.

Akun Administrator Default

Setelah instalasi baru, gunakan kredensial berikut untuk login:

Alamat email: admin@example.com
Password: changeme

Segera ubah kredensial login sebelum melanjutkan.

Konfigurasi Router

Sekarang ini sudah selesai, kita harus mengkonfigurasi router kita untuk mengarahkan port-port ini ke mesin ini. Jadi catatlah IP lokal di mana Nginx Proxy Manager diinstal. Anda bisa menemukan IP dengan mengetikkan perintah ini di terminal.

ip addr

Kemudian Anda akan melihatnya di sana, biasanya nomor 2 dalam daftar atau di sebelah ID NIC Anda.

Dalam kasus saya, saya harus meneruskan port 80 dan 443 ke 192.168.1.165 di router saya. Saya mengasumsikan Anda sudah tahu ini tetapi saya sampaikan untuk jaga-jaga…

Ada banyak router berbeda di luar sana, namun sebagian besar dari mereka cukup mirip ketika harus meneruskan port. Saya tidak bisa berasumsi bahwa Anda semua memiliki gateway FioS seperti yang saya miliki tetapi ini yang terlihat. Untuk mengakses router Anda, Anda harus tahu alamat IP router untuk masuk ke administrasi. Kemudian login. Sekali lagi, panduan ini mengasumsikan Anda sudah tahu cara melakukannya.

Di sini Anda bisa melihat saya menambahkan 2 aturan untuk port 80 dan 443 ke IP mesin di mana Nginx Proxy Manager dihosting. Sekarang, mulai dari sini, Nginx Proxy Manager akan bertindak sebagai “pseudo router” di mana kita hanya perlu mengarahkan lalu lintas ke domain daripada membuka lebih banyak port.

Sekali lagi, silakan lihat halaman “Setup Domain Anda dengan Cloudflare” sebelum memulai bagian berikutnya ini. Jika Anda belum melakukan ini, bagian berikut tidak akan berhasil.

Membuat Record A

Masuk ke CP Cloudflare Anda dan buka halaman DNS lalu klik Tambah record

  • Pilih Tipe A
  • Masukkan nama domain Anda
  • Masukkan IP WAN Anda lihat di sini untuk melihatnya
  • Pastikan status Proxy adalah DNS Only (untuk saat ini)
  • Simpan rekaman.

Alasan kami harus meninggalkan proxy dinonaktifkan (untuk saat ini) adalah agar Let’s Encrypt dapat memberikan sertifikat. Setelah Host diatur, kita bisa kembali ke sini dan menyembunyikan IP dengan mengaktifkan status proxy. Jika Anda tidak akan menggunakan domain root, Anda bisa langsung memproksikan sekarang, jika tidak, buat Host di Nginx Proxy Manager terlebih dahulu.

Menambahkan Host

Untuk bagian ini, kita harus memiliki layanan tertentu dalam pikiran yang ingin kita ekspos. Sebaiknya hanya mengungkapkan layanan yang memiliki autentikasi, seperti blog Wordpress. Untuk aplikasi seperti Wordpress, lebih baik menyiapkan domain SEBELUM menjalankan instalasi karena Wordpress menetapkan URL dalam database. Jadi, setup Wordpress di Docker tetapi jangan menjalankan instalasi sampai Anda mengatur domain dalam Host di Nginx Proxy Manager.

Catat IP host docker dan port yang dijalankan Wordpress.

Di Nginx Proxy Manager, pergi ke Hosts

Klik tombol Tambah Proxy Host (kanan atas)

PERINGATAN: Nama Domain adalah domain yang kita setup di Cloudflare. Kami meneruskan domain ke IP host Wordpress/Docker kami pada port 8977.

Klik SSL di bagian atas untuk meminta sertifikat SSL kemudian klik di tempat tertulis “None” untuk menjatuhkan dan memilih “Request a new SSL Certificate”.

Sekarang centang dan setuju dengan ToS Let’s Encrypt. Kemudian klik Simpan.

Ketika selesai, akan menutup dan membawa Anda ke dashboard. Anda harus kembali ke menu ini di bawah SSL dan mengaktifkan “Force SSL” untuk Host ini. Ini akan memastikan bahwa domain Anda hanya diakses melalui https tidak peduli bagaimana cara mengetikkannya di bilah alamat.

Jangan lupa kembali ke CP Cloudflare dan aktifkan Proxy pada rekaman untuk menyembunyikan IP Anda. Jika Anda mengalami masalah mengakses domain Anda, masuk ke SSL/TLS dan atur enkripsi ke Full dan coba lagi.

Sekarang Anda dapat menavigasi ke domain dalam bilah alamat Anda dan memulai instalasi Wordpress di nama domain Anda yang di-hosting di server Anda sendiri!

Menambahkan lebih banyak Rekaman di Cloudflare

Sekarang bahwa domain root kita mengarah ke IP WAN kita, kita bisa menambahkan lebih banyak rekaman menggunakan subdomain dan CNAMES. Setiap rekaman selanjutnya akan ditambahkan sebagai CNAME yang berasal dari rekaman A kita. Dengan cara ini jika IP WAN kita berubah, yang harus kita lakukan hanyalah mengubah IP pada rekaman A yang kita buat dan semua CNAMES kita akan mewarisi IP baru tersebut.

Contoh ini akan membuat bookstack.l33t.host kemudian kita akan mengatur Host di Nginx Proxy Manager dengan cara yang sama seperti yang kita lakukan untuk Wordpress. Jangan lupa untuk meninggalkan rekaman tidak diproksi sampai Anda membuat Host di Nginx Proxy Manager.

Penutup

Anda akan menemukan bahwa saat menggunakan Nginx Proxy Manager, beberapa aplikasi seperti Bookstack memerlukan Websockets yang diaktifkan agar berfungsi dengan baik. Saat Anda bereksperimen dengan hal ini, Anda akan belajar hal-hal seperti ini dan semakin memahami cara kerja sistem ini. Websockets dapat diaktifkan di Host Nginx Proxy Manager.