Cara Mengatur Proxy Terbalik (Langkah-Langkah untuk Nginx dan Apache)

Diterbitkan: 2020-08-14

Proksi terbalik berada di depan server web dan menerima semua permintaan sebelum mencapai server asal. Ini bekerja mirip dengan proxy maju, kecuali dalam hal ini server web menggunakan proxy daripada pengguna atau klien. Proxy terbalik biasanya digunakan untuk meningkatkan kinerja, keamanan, dan keandalan server web.

Misalnya, Anda dapat memiliki situs non-WordPress yang dihosting di domain example.com di Server A dan blognya berjalan di WordPress di URL example.com/blog yang dihosting di Server B. Anda dapat melakukannya dengan menambahkan proxy terbalik untuk server yang menghosting situs utama Anda. Anda dapat mengonfigurasi proxy terbalik untuk mengarahkan permintaan ke blog ke server yang berbeda (misalnya host WordPress yang dikelola seperti Kinsta).

Dalam artikel ini, Anda akan mempelajari dasar-dasar server proxy terbalik, cara kerjanya, apa manfaat utamanya, dan bagaimana Anda dapat menggunakannya untuk mempercepat dan mengamankan situs WordPress Anda.

Bersemangat? Ayo mulai!

Apa itu Proksi Terbalik?

Untuk memahami apa itu server proxy terbalik, Anda harus terlebih dahulu mengetahui perannya dan membiasakan diri dengan semua istilah terkaitnya.

Saat Anda menjelajahi web secara normal dengan memasukkan nama domain atau mengklik tautan, browser/perangkat Anda terhubung ke server situs web secara langsung dan mulai mengunduh sumber dayanya.

Infografis yang menunjukkan bagaimana internet dijelajahi biasanya
Cara kerja browsing di internet biasanya

Jika Anda ingin menganonimkan alamat IP Anda dari situs web yang Anda kunjungi, maka Anda dapat menggunakan server proxy untuk mengirim semua permintaan Anda ke sana terlebih dahulu. Ini akan meneruskan permintaan Anda ke resolver DNS dan kemudian mengunduh sumber daya situs web dari server asalnya.

Setelah itu, itu akan meneruskan sumber daya tersebut ke perangkat Anda. Ini disebut proxy maju.

Infografis yang menunjukkan cara kerja proxy penerusan
Cara kerja server proxy penerusan

Anda benar-benar tersembunyi dari situs web karena menganggap permintaan Anda berasal dari proxy penerusan.

Selain meningkatkan privasi pengguna, proxy penerusan terutama digunakan untuk melewati batasan konten geografis. Misalnya, jika Anda ingin menonton video yang diblokir di wilayah Anda, Anda dapat menggunakan proxy penerusan dengan alamat IP tempat video tersebut tersedia untuk ditonton.

Proxy penerusan bekerja dengan cara yang hampir sama dengan Virtual Private Network (VPN), tetapi itu adalah teknologi yang berbeda dengan kasus penggunaan yang unik (walaupun terkadang dapat tumpang tindih).

Server Proksi Terbalik vs Server Proksi Teruskan

Server proxy terbalik bertindak sebagai front untuk server asal untuk menjaga anonimitas dan meningkatkan keamanan, seperti bagaimana pengguna/klien dapat menggunakan proxy maju untuk mencapai hal yang sama. Ini memastikan bahwa tidak ada pengguna atau klien yang berkomunikasi langsung dengan server asal.

Infografis yang menunjukkan cara kerja proxy terbalik
Cara kerja server proxy terbalik

Perbedaan antara proxy maju vs proxy terbalik adalah kecil, tetapi mereka bekerja secara berbeda.

Keduanya dapat bekerja sama karena tidak ada tumpang tindih antara fungsi mereka. Biasanya, pengguna/klien menggunakan proxy maju, sedangkan server asal menggunakan proxy terbalik.

Infografis yang menunjukkan perbedaan antara Forward Proxy vs Reverse Proxy
Forward Proxy vs Reverse Proxy server

Karena admin server dapat mengontrol cara kerja proxy terbalik, Anda dapat menggunakannya untuk mengaktifkan banyak fitur berguna.

Kami akan mencantumkan semua manfaatnya nanti di posting ini.

Mengapa Menggunakan Proksi Terbalik?

Banyak bisnis, terutama perusahaan besar, menggunakan situs web pesanan yang dibuat khusus untuk kebutuhan unik mereka dan tidak berjalan di WordPress. Beberapa contoh termasuk situs web bank dan asuransi.

Dalam kasus lain, bisnis dapat meng-host situs mereka di layanan eksternal yang tidak mengizinkan mereka untuk menginstal perangkat lunak eksternal (misalnya WordPress). Biasanya, ini adalah pengecer kecil hingga menengah yang menggunakan platform e-niaga seperti Shopify.

Karena WordPress memiliki fitur CMS yang tangguh, banyak bisnis, termasuk perusahaan besar dengan situs web yang dipesan lebih dahulu, mungkin lebih memilih untuk meng-host blog mereka menggunakan WordPress.

Salah satu cara untuk mengatasi masalah ini adalah menginstal WordPress di subdomain situs web utama dan menyusun menu navigasi sedemikian rupa sehingga pengguna dapat beralih dengan mudah antara situs web utama dan blog.

Karena subdomain berperilaku sebagai domain unik, ini dapat memengaruhi SEO situs Anda. Meskipun Google memperlakukan subdomain dan subdirektori secara setara, dibutuhkan lebih banyak upaya untuk mengoptimalkan situs web untuk peringkat mesin telusur jika dihosting di subdomain daripada jika dihosting di subdirektori.

Dua pendekatan untuk meng-host situs web alternatif dengan nama domain yang sama
Dua pendekatan untuk menghosting blog di situs web

Google telah menegaskan kembali bahwa ia memperlakukan subdomain dan subdirektori secara setara, tetapi beberapa pakar SEO tidak setuju dengannya. Dan bahkan jika itu tidak memengaruhi SEO situs, situs yang dihosting di subdirektori lebih mudah dirawat.

Itu sebabnya Anda dapat menggunakan proxy terbalik untuk mengarahkan permintaan ke blog situs yang dihosting di server terpisah. Misalnya, bank dapat meng-host situs web utama mereka di server mereka dengan aman, tetapi mereka juga dapat meng-host blog bertenaga WordPress mereka secara terpisah di host WordPress yang dikelola seperti Kinsta.

Contoh kasus penggunaan server proxy terbalik
Contoh kasus penggunaan proxy terbalik

Menyatukan dua situs berbeda di bawah satu nama domain adalah salah satu keuntungan utama menggunakan proxy terbalik. Ini membantu merek menjaga situs mereka terorganisir, profesional, dan menjaga kredibilitas.

Pelajari bagaimana proxy terbalik dapat meningkatkan ️ kinerja, keamanan & keandalan... semua dalam panduan ini ️ Klik untuk Tweet

Manfaat Menggunakan Proxy Terbalik

Selain kasus penggunaan di atas, proxy terbalik juga memberikan banyak manfaat lainnya. Bagian di bawah ini membahas beberapa keuntungan utama mereka.

Penyeimbang beban

Server asal tunggal tidak dapat menangani semua lalu lintas masuk untuk situs web dengan jutaan pengunjung unik setiap hari. Dalam kasus ini, Anda dapat mendistribusikan lalu lintas dengan cerdas di antara kumpulan banyak server. Biasanya, semua server akan meng-host konten yang sama untuk menghilangkan satu titik kegagalan, membuat situs web lebih andal.

Proxy terbalik adalah cara yang bagus untuk mengatur ini karena dapat menerima lalu lintas masuk sebelum mencapai server asal. Jika server asal kelebihan beban atau gagal total, server tersebut dapat mendistribusikan lalu lintas ke server lain tanpa memengaruhi fungsionalitas situs.

Proksi terbalik juga dapat mengarahkan permintaan masuk ke beberapa server, dengan setiap server melakukan fungsi tertentu yang dioptimalkan untuknya. Proxy terbalik kemudian dapat mengumpulkan tanggapan dari semua server dan mengirimkannya ke klien.

Karena kami menggunakan sebagian besar proxy terbalik yang populer terutama untuk penyeimbangan beban, mereka juga disebut sebagai Penyeimbang Beban .

Penyeimbangan Beban Server Global (GSLB)

GSLB adalah metode penyeimbangan beban tingkat lanjut untuk mendistribusikan lalu lintas situs web di antara banyak server yang ditempatkan secara strategis di seluruh dunia. Ini biasanya dilakukan melalui teknik perutean anycast, di mana proxy terbalik memilih node server berdasarkan waktu tempuh tercepat antara klien dan server.

GSLB tidak hanya meningkatkan keandalan dan keamanan situs secara signifikan, tetapi juga mengurangi latensi dan waktu muat, sehingga meningkatkan pengalaman pengguna. Anda dapat menggunakan GSLB dengan teknik pengoptimalan jaringan lainnya seperti Spoon Feeding untuk membebaskan lebih banyak lagi sumber daya komputasi server asal.

Meskipun Anda dapat mengatur Global Server Load Balancing secara manual di server Anda, itu biasanya ditangani oleh CDN khusus seperti Cloudflare dan KeyCDN (yang juga mendukung Kinsta CDN). Kinsta melayani semua situs web yang dihosting dengannya melalui Load Balancer yang didukung oleh Google Cloud Platform.

Keamanan yang Ditingkatkan

Proxy terbalik dapat menyelubungi alamat IP dan karakteristik lain dari server asal. Dengan demikian, server asal situs web Anda dapat mempertahankan anonimitasnya dengan lebih baik, meningkatkan keamanannya secara signifikan.

Karena proxy terbalik akan menerima semua lalu lintas sebelum mencapai server utama, setiap penyerang atau peretas akan merasa lebih sulit untuk menargetkan situs web Anda dengan ancaman keamanan seperti serangan DDoS.

Anda dapat menggunakan firewall yang ketat untuk memperkuat proxy terbalik dengan keamanan yang lebih ketat terhadap serangan cyber umum. Tanpa proxy terbalik yang diinstal, sulit untuk menghapus malware atau memulai penghapusan.

Proxy terbalik seperti HAProxy dapat menambahkan otentikasi akses HTTP dasar ke server web yang tidak mengaktifkannya. Anda juga dapat menggunakan proxy terbalik untuk menambahkan otentikasi terpusat untuk berbagai jenis permintaan.

Caching yang Kuat

Anda dapat menggunakan proxy terbalik untuk tujuan akselerasi web dengan menyimpan konten statis dan dinamis dalam cache. Ini dapat mengurangi beban pada server asal, menghasilkan situs web yang lebih cepat.

Misalnya, jika server asal Anda berada di AS dan pengguna dari Eropa mengunjungi situs web Anda, maka Anda dapat menyajikan versi cache situs Anda dari server proxy terbalik di Eropa. Karena proxy terbalik lebih dekat ke pengguna daripada server asal, situs web akan memakan waktu lebih sedikit untuk memuat, membuatnya berkinerja luar biasa.

Varnish dan Nginx FastCGI adalah contoh proksi terbalik yang menonjol yang digunakan untuk menyimpan konten web. Jika situs Anda dihosting dengan Kinsta, Anda tidak perlu khawatir tentang caching karena Kinsta menangani semua kerja keras caching untuk Anda.

Kompresi Unggul

Respons server menghabiskan banyak bandwidth. Mengompresi respons server (misalnya dengan gzip) sebelum mengirimnya ke klien dapat mengurangi jumlah bandwidth yang diperlukan, mempercepat respons server melalui jaringan.

Proksi terbalik sangat ideal untuk mengompresi respons server saat berada di antara server asal dan klien.

Enkripsi SSL yang Dioptimalkan

Mengenkripsi dan mendekripsi permintaan SSL/TLS untuk setiap klien bisa sangat membebani server asal. Proksi terbalik dapat mengambil tugas ini untuk membebaskan sumber daya server asal untuk tugas penting lainnya, seperti menyajikan konten.

Keuntungan lain dari pembongkaran enkripsi dan dekripsi SSL/TSL adalah untuk mengurangi latensi untuk klien yang secara geografis jauh dari server asal.

Anda juga dapat memilih proxy terbalik dengan perangkat keras akselerasi SSL/TLS khusus untuk mengoptimalkan tugas ini lebih jauh. Proksi terbalik semacam itu disebut proksi terminasi SSL/TLS. Beberapa server seperti Varnish tidak mendukung protokol SSL/TSL, sehingga proxy terbalik terminasi SSL/TSL dapat membantu mengamankan lalu lintas yang melewatinya.

Pengujian A/B yang Lebih Baik

Sebagian besar alat pengujian A/B mengharuskan Anda menggunakan pustaka JavaScript eksternal untuk memuat fungsinya. Namun, memuat skrip pihak ketiga dapat memperlambat waktu pemuatan halaman Anda dan menciptakan pengalaman yang tidak menentu bagi pengguna.

Sebagai gantinya, Anda dapat menggunakan proxy terbalik untuk membuat dua aliran terpisah di tingkat server itu sendiri. Misalnya, Anda dapat menggunakan metode split_clients atau sticky route Nginx untuk mengontrol pengalihan lalu lintas.

Anda dapat merujuk ke tutorial di Nginx dan freeCodeCamp untuk mempelajari lebih lanjut tentang melakukan pengujian A/B dengan proxy terbalik.

Memantau dan Mencatat Lalu Lintas

Proksi terbalik menangkap setiap permintaan yang melewatinya. Oleh karena itu, Anda dapat menggunakannya sebagai hub pusat untuk memantau dan mencatat lalu lintas. Bahkan jika Anda menggunakan beberapa server web untuk meng-host semua komponen situs web Anda, menggunakan proxy terbalik akan memudahkan untuk memantau semua data yang masuk dan keluar dari situs Anda.

Proxy Terbalik Paling Populer

Sesuai W3Techs, hampir 83% situs web tidak menggunakan layanan proxy terbalik yang mereka pantau.

Statistik proxy terbalik yang digunakan oleh situs web
Statistik proxy terbalik yang digunakan oleh situs web (Sumber: W3Techs.com)

Dari 17% situs web yang menggunakan proxy terbalik (tercantum di atas), Anda akan melihat bahwa kebanyakan dari mereka adalah CDN. Itu karena sebagian besar proxy terbalik menyembunyikan keberadaannya secara default sebagai tindakan pencegahan keamanan. Oleh karena itu, Anda tidak dapat mengandalkan layanan pemantauan situs web seperti W3Techs untuk menemukan proxy terbalik mana yang paling populer.

Dari penelitian dan pengalaman kami, proxy terbalik paling populer yang digunakan saat ini adalah:

Nginx

Nginx adalah server web open source yang juga dapat berfungsi sebagai proxy terbalik. Selain digunakan untuk meng-host situs web, ini juga merupakan salah satu solusi reverse proxy dan load balancing yang paling banyak digunakan. Menurut Netcraft, lebih dari 479 juta server web menggunakan Nginx pada Desember 2019, menjadikannya pemimpin dalam pangsa pasar server web.

Pangsa pasar server web dari semua situs sesuai Netcraft
Pangsa pasar server web dari semua situs (Sumber: Netcraft)

Nginx menyediakan semua manfaat proxy terbalik yang dibahas di atas, plus lebih banyak lagi. Ini meningkatkan kinerja web, keamanan, keandalan, dan skalabilitas. Anda dapat mengonfigurasi Nginx menggunakan file konfigurasinya, yang juga dapat dimuat ulang. Di Kinsta, proxy terbalik Nginx adalah salah satu dari beberapa add-on premium yang dapat Anda gunakan.

Tetapi Anda juga dapat menggunakan Nginx Plus, sebuah penawaran komersial, untuk mendapatkan akses ke opsi konfigurasi berbasis API dan fitur lain yang sesuai untuk situs web perusahaan besar.

Kinsta memberdayakan semua situs webnya dengan Nginx. Ini memiliki peringkat dalam status hosting web Tingkat Atas Sinyal Ulasan di setiap kategori yang dilombakannya. Beberapa perusahaan besar lainnya yang menggunakan Nginx adalah MaxCDN, Cloudflare, dan Netflix.

Menyiapkan Nginx sebagai proxy terbalik dasar sederhana. Nginx juga memberi Anda berbagai arahan untuk menyesuaikan proxy terbalik server Anda sesuai kebutuhan Anda. Kita akan membahas bagaimana melakukan ini di bagian selanjutnya. Jika Anda adalah pelanggan Kinsta, Anda juga akan mempelajari cara menggunakan proxy terbalik untuk situs web yang dihosting dengan Kinsta di bagian yang sama.

Pernis

Varnish adalah proksi balik HTTP open source dengan mesin cache bawaan. Ini dirancang terutama untuk situs web dengan lalu lintas tinggi yang menyajikan konten dinamis. Anda juga dapat menggunakan Varnish sebagai penyeimbang beban, firewall aplikasi web (WAF), dan server otorisasi dan autentikasi edge.

Ini bekerja pada semua versi modern Linux dan FreeBSD, yang digunakan terutama sebagai front untuk server web Nginx atau Apache. Varnish's kuat dan sangat fleksibel Varnish Configuration Language (VCL) memungkinkan Anda menentukan berbagai fitur seperti menangani permintaan HTTP, caching, dan menghubungkan ke satu atau lebih server web.

Untuk alasan ini, banyak CDN menggunakan Varnish sebagai fondasi utama mereka untuk mengirimkan konten dengan cepat.

Varnish juga mendukung Edge Side Include (ESI), bahasa yang membantu Anda menggunakan kembali bagian dari satu halaman web di halaman web lain. Jika situs web Anda menggunakan banyak konten berulang di halaman yang berbeda, ESI dapat membantu Anda mempercepat waktu pemuatan halaman situs dengan menyimpan bagian yang sering digunakan dalam cache.

Anda dapat memperluas Varnish dengan berbagai modulnya (VMOD). Buka tutorial resmi Varnish untuk mempelajari cara mengatur Varnish sebagai proxy terbalik untuk WordPress.

Server Lalu Lintas Apache

Apache Traffic Server adalah server proxy caching sumber terbuka. Ini populer karena fitur-fiturnya yang cepat dan skalabel. Itu adalah produk komersial yang dikembangkan oleh Yahoo! dulu, tapi mereka membuatnya open source dan disumbangkan ke Apache Foundation untuk pemeliharaan.

Beberapa jaringan konten utama dan CDN seperti Comcast, Akamai, LinkedIn, Yahoo, dan Apple menggunakan Apache Traffic Server untuk mendukung teknologi mereka.

Anda juga dapat menggunakan Apache HTTP Server ( Apache httpd ), sebuah daemon server HTTP, untuk menyiapkan proxy terbalik di server web Anda. Selain bertindak sebagai server web dasar, ini juga membantu Anda menyajikan konten statis dan dinamis kepada pengguna. Anda akan mempelajari cara mengatur Apache sebagai proxy terbalik nanti di artikel ini.

HAProxy

HAProxy adalah proksi terbalik sumber terbuka dan penyeimbang beban. Ini dirancang untuk berintegrasi dengan sebagian besar arsitektur server web yang ada, termasuk distribusi Linux dan platform cloud. Mirip dengan Nginx, HAProxy menggunakan model I/O yang digerakkan oleh peristiwa dan mendukung permintaan pemisahan di beberapa proses pekerja.

Untuk permintaan HTTP, HAProxy berkinerja sangat baik bahkan di bawah beban berat. Beberapa situs web dengan lalu lintas tertinggi di internet seperti Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub, dan Imgur menggunakan HAProxy untuk mengirimkan situs web mereka secara efisien.

Membahas cara menerapkan HAProxy berada di luar cakupan artikel ini, tetapi Anda dapat merujuk ke dokumentasi mereka untuk memahami cara kerjanya.

Catatan: Traefik dan Envoy adalah dua alternatif open source lain untuk HAProxy. Keduanya adalah proxy terbalik berkinerja tinggi dan penyeimbang beban dengan banyak fitur lanjutan.

Beberapa proxy terbalik populer lainnya adalah AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer, dan Google Cloud Load Balancer. Untuk daftar lengkap proxy terbalik dan penyeimbang beban teratas yang digunakan saat ini, Anda dapat melihat Stackshare.io.

Reverse Proxy: Gunakan Kasus untuk Situs WordPress

Terutama ada tiga kasus penggunaan untuk menggunakan proxy terbalik untuk situs WordPress, termasuk situs yang dihosting di Kinsta.

Memuat situs utama vs situs proxy
Memuat 'Situs Utama' vs 'Situs Proksi'

Kami hanya akan menggunakan Nginx untuk contoh ini, karena ini adalah proxy terbalik paling populer yang digunakan untuk situs WordPress saat ini. Tetapi prinsip dasar yang sama akan berlaku untuk proxy terbalik lainnya.

Proxy terbalik seringkali menantang untuk dipasang, dikonfigurasi, dan didukung. Untuk alasan ini, Kinsta menawarkan langganan tambahan $50 bulanan untuk setiap proxy terbalik yang Anda perlukan bantuan untuk menyiapkannya. Anda dapat menghubungi tim dukungan Kinsta untuk detail lebih lanjut.

1. Situs Utama dan Proksi yang Di-host di Server yang Sama

Jika situs utama dan situs proksi dihosting di server yang sama, situs utama dapat berjalan di instalasi WordPress, sementara instalasi WordPress terpisah mendukung situs proksi.

Karena Anda akan memiliki akses ke situs dan server web bersama mereka, Anda dapat mengatur aturan proxy terbalik untuk situs utama, dan kemudian mengonfigurasi situs proxy untuk memuat dari proxy terbalik.

Jika Anda menghosting kedua situs ini di Kinsta, Anda dapat menghubungi tim dukungan Kinsta dan meminta mereka untuk menyiapkan proxy terbalik untuk Anda. Berikut prosedur yang perlu Anda ikuti:

  • Pastikan situs utama dan situs proxy di-host di Kinsta. Jika tidak, maka Anda dapat memigrasikan kedua situs ke lingkungan Kinsta, baik secara manual atau dengan mengirimkan permintaan migrasi.
  • Buka tiket dukungan dan berikan tim dukungan Kinsta deskripsi yang jelas tentang konfigurasi domain. Saya akan membutuhkan waktu sekitar satu hari kerja untuk menyiapkan proxy terbalik.
  • Kinsta akan mengatur aturan proxy terbalik yang relevan di situs utama dan mengonfigurasi situs proxy untuk memuat melalui proxy terbalik.

Berikut adalah arahan proxy terbalik Nginx standar yang digunakan oleh Kinsta untuk memuat situs subdirektori melalui proxy terbalik:

 location ^~ /subfolder/ { proxy_pass http://subfolder.domain.com; 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; }

Pada kode di atas, Anda perlu mengganti /subfolder/ placeholder dengan nama subdirektori yang sebenarnya (mis /blog/ , /shop/ ). Plus, subdomain http://subfolder.domain.com harus cocok dengan URL yang digunakan untuk mengarahkan proxy terbalik ke situs yang diproksi.

Arahan location menyertakan simbol tanda sisipan dan tilde ( ^~ ) untuk memberi tahu Nginx bahwa jika menemukan string yang ditentukan, ia harus berhenti mencari kecocokan lebih lanjut dan menggunakan arahan yang tercantum di sini. Pelajari lebih lanjut tentang arahan proxy terbalik Nginx dalam dokumentasinya.
Selanjutnya, Anda perlu mengonfigurasi situs proksi untuk memuat melalui proksi terbalik. Berikut adalah langkah-langkah standar yang diikuti oleh Kinsta untuk mengkonfigurasi situs proksi:

  • Buat subdirektori di jalur tempat situs proksi dimuat. Semua file situs web yang diproksi dipindahkan ke subdirektori ini.
  • Perbarui file konfigurasi server web untuk menentukan subdirektori baru sebagai direktori root untuk situs yang diproksi. Selain itu, Anda perlu menambahkan aturan penulisan ulang untuk menghapus subdirektori dari URI permintaan untuk setiap permintaan yang masuk.
  • Perbarui semua URL di basis data situs yang diproksi agar sesuai dengan URL situs langsung (mis. example.com/blog ).
  • Edit wp-config.php situs proksi dengan definisi $_SERVER['HTTP_HOST'] , arahkan ke URL situs utama.
  • Jika Anda menggunakan sertifikat SSL, maka Anda perlu menetapkan aturan ketat dalam wp-config.php untuk menghindari pengulangan pengalihan.

Catatan: Situs yang diproksi tidak dapat membuat URL yang menduplikasi subdirektori yang sama di mana situs yang diproksi dimuat. Misalnya, situs proksi di example.com/blog tidak dapat membuat halaman atau direktori di example.com/blog/blog .

2. Hanya Situs Proksi yang Dihosting di Server Anda

Jika Anda hanya memiliki akses ke situs proksi dan server webnya, maka Anda perlu menghubungi admin server situs utama dan meminta mereka untuk menyiapkan aturan proxy terbalik untuk Anda.

Butuh hosting yang sangat cepat, aman, dan ramah pengembang untuk situs Anda? Kinsta dibangun dengan mempertimbangkan pengembang WordPress dan menyediakan banyak alat dan dasbor yang kuat. Lihat rencana kami

Untuk melakukannya, Anda harus mengikuti langkah-langkah yang sama yang diuraikan di atas, kecuali dalam hal ini Anda harus mengonfigurasi aturan pada dua server yang berbeda.

Untuk menghosting situs proksi Anda dengan Kinsta, tambahkan domain ke situs yang akan mengarah ke proksi terbalik. Biasanya, subdomain sesuai dengan tujuan ini (misalnya blog.example.com ) untuk memuat situs proksi melalui tautan subdirektori (misalnya example.com/blog ).

Setelah menyiapkan situs proksi Anda di Kinsta, Anda dapat menghubungi tim dukungan Kinsta untuk mengonfigurasi situs proksi agar memuat melalui proksi terbalik. Saat ini, tim dukungan kami akan memerlukan IP asli server Anda untuk menyelesaikan proses penyiapan dengan cara yang menghitung kunjungan dengan benar. Jika Anda tidak dapat memberikan IP statis karena pembatasan IP dinamis dari penyedia tertentu (misalnya AWS CloudFront), paket Anda akan dikonversi ke paket berbasis bandwidth yang sebanding.

Terakhir, menyiapkan proxy terbalik di server Anda berada di luar cakupan dukungan Kinsta karena hanya admin server yang dapat menanganinya.

3. Hanya Situs Utama yang Dihosting di Server Anda

Jika Anda hanya memiliki akses ke situs utama dan server webnya, maka Anda harus mengatur proxy terbalik dan mengonfigurasi aturannya untuk memuat situs proxy dari host eksternal. Menginstal dan mengonfigurasi situs proksi untuk memuat melalui proksi terbalik adalah tanggung jawab admin server sekunder.

Menghosting situs utama Anda di Kinsta akan memberi Anda akses ke tim dukungan Kinsta. Anda dapat meningkatkan tiket dukungan dengan mereka untuk menambahkan aturan proxy terbalik standar yang tercantum sebelumnya di artikel ini. Anda juga dapat memiliki penyesuaian tambahan yang ditambahkan ke aturan tersebut jika diperlukan.

Dalam skenario ini, Anda bertanggung jawab penuh untuk mengonfigurasi situs proksi untuk memuatnya dengan benar melalui proksi terbalik.

Cara Mengatur Nginx sebagai Proxy Terbalik

Jika Kinsta tidak meng-host situs web Anda dan Anda mengelola server Anda, maka Anda harus mengatur proxy terbalik sendiri dan mengonfigurasinya agar mengarah ke situs yang diproksi.

Tergantung pada sistem operasi server web Anda, Anda dapat menginstal Nginx secara berbeda. Untuk distribusi Linux, Anda dapat menggunakan berbagai paket Nginx berdasarkan versi distribusi Linux Anda.

Pada contoh di bawah, kami telah menginstal situs utama di nama domain example.com , sedangkan situs WordPress proksi dipasang di subdomain blog.domain.com . Keduanya didukung oleh Apache di server web yang berjalan di Ubuntu 18.04. Kami akan menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik di server utama.

Untuk memulai, akses terminal server Anda melalui SSH. Kemudian gunakan perintah apt-get untuk memperbarui daftar paket distribusi Anda dan menginstal Nginx di server web Anda.

 sudo apt update sudo apt install nginx

Selanjutnya, Anda perlu mengonfigurasi Nginx ke permintaan proxy untuk domain yang dihosting di Apache. Untuk melakukannya, buat file host virtual baru. Di sini, saya menggunakan editor nano untuk menambahkan kode, tetapi Anda dapat menggunakan editor kode pilihan Anda.

 sudo nano /etc/nginx/sites-available/example.com.conf

Kemudian atur arahan Nginx untuk meneruskan permintaan ke Apache dengan menambahkan server {...} dan blok location :

 server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com/public # fallback for index.php location / { try_files $uri $uri/ /index.php?$query_string; }location /blog { proxy_pass http://blog.domain.com;proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }

Pada kode di atas, saya mendefinisikan tautan subdirektori example.com/blog yang akan dilayani oleh server Apache. Pastikan Anda menggunakan alamat IP publik (atau URL) situs web proksi Anda dalam arahan proxy_pass . Dalam kasus saya, situs web proxy saya di-host di subdomain blog.domain.com .

Catatan: Pastikan situs web yang diproksi telah diinstal dan siap disajikan sebelum Anda melakukan perubahan apa pun.

Anda dapat mempelajari lebih lanjut tentang semua arahan proxy terbalik yang digunakan di sini di indeks arahan terperinci Nginx.

Simpan file host virtual. Kemudian aktifkan virtual host baru dengan membuat symlink untuk file bernama example.com.conf di direktori /etc/nginx/sites-available dan /etc/nginx/sites-enabled .

 sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Setelah itu, uji Nginx untuk menemukan kesalahan konfigurasi.

 sudo nginx -t

Jika tidak ada kesalahan, muat ulang Nginx untuk menerapkan perubahan.

 sudo systemctl reload nginx

Anda telah berhasil menyiapkan Nginx untuk berfungsi sebagai proxy terbalik sekarang. Untuk mengonfirmasi hal ini, Anda dapat menggunakan fungsi phpinfo() untuk memeriksa variabel PHP yang dimuat saat Anda mengunjungi situs proxy Anda.

Di bawah variabel SERVER_SOFTWARE dan DOCUMENT_ROOT PHP, Anda akan melihat bahwa Apache melayani domain ini di backend. Tetapi HTTP_X_REAL_IP dan HTTP_X_FORWARDED_FOR PHP mengkonfirmasi bahwa Nginx digunakan sebagai proxy terbalik untuk meneruskan permintaan.

Anda dapat mempercepat penyajian situs WordPress Anda melalui Nginx dengan menggunakan modul fastcgi_cache dan ngx_cache_purge. Sementara modul pertama akan meng-cache situs Anda, modul kedua akan secara otomatis membersihkan cache berdasarkan peristiwa tertentu (misalnya menerbitkan atau mengedit posting/halaman WordPress).

Anda dapat menggunakan plugin WordPress Nginx Cache Controller untuk mengontrol cache server proxy Nginx langsung dari dasbor admin WordPress Anda. Jika Anda menggunakan instalasi WordPress Multisite, Anda dapat menggunakan plugin Nginx Helper untuk melakukan hal yang sama.

Lihat dokumentasi utama Nginx dan panduan penyiapan WordPress Nginx untuk ikhtisar terperinci tentang cara bekerja dengan Nginx dan WordPress.

Cara Mengatur Apache sebagai Proxy Terbalik

Sebelum memulai, pastikan Anda memiliki dua situs web yang aktif dan berjalan di example.com dan blog.domain.com . Situs web pertama mungkin atau mungkin bukan situs WordPress, tetapi situs kedua harus situs WordPress karena digunakan terutama untuk memuat blog domain root di tautan subdirektori example.com/blog .

Mulai konfigurasikan Apache dengan membuka terminal server Anda melalui SSH dan aktifkan modul proxy Apache.

 sudo a2enmod proxy proxy_http ssl

Menjalankan perintah di atas kemungkinan besar akan memulai ulang Apache untuk memuat ulang arahan yang baru ditentukan.

Selanjutnya, edit file host virtual server utama Anda untuk membuat proxy terbalik. Berikut kode yang perlu Anda tambahkan:

 <VirtualHost *> DocumentRoot /var/www/app/public SSLProxyEngine On ProxyRequests off ProxyPass /blog http://blog.domain.com ProxyPassReverse /blog http://blog.domain.com </VirtualHost>

Arahan ProxyPass akan membuat proxy terbalik untuk jalur yang ditentukan, sedangkan arahan ProxyPassReverse akan mencegat header respons HTTP yang dikirim melalui proxy terbalik ini dan menulis ulang agar sesuai dengan server Apache.

Setelah menyimpan file, Anda perlu mengedit wp-config.php Anda dengan menambahkan kode berikut tepat sebelum baris yang meminta Anda untuk berhenti mengedit.

 # ProxyPass Settings # overrides the variables below to ensure that any # request to /blog/* subdirectory is taken care of properly $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI']; $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

Terakhir, Anda perlu memperbarui database situs WordPress Anda untuk menambahkan nilai konfigurasi untuk tautan subdirektori /blog . Anda dapat melakukannya dengan menjalankan kueri SQL berikut:

 UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Anda sekarang seharusnya dapat mengunjungi https://www.example.com/blog URL dan situs WordPress Anda dihosting di http://blog.domain.com subdomain dimuat tanpa mengubah URL-nya. Anda dapat terus menggunakan WordPress seperti biasa untuk menelusuri, menulis, mengedit, dan mengelola situs Anda.

Batasan Proxy Terbalik

  • Proxy terbalik menimbulkan risiko keamanan yang signifikan karena dapat membaca dan mengubah semua lalu lintas yang melewatinya. Jika Anda meneruskan lalu lintas HTTPS melalui proxy terbalik, maka perlu mendekripsi dan mengenkripsi ulang data yang lewat. Ini berarti bahwa ia harus memiliki kunci pribadi dari sertifikat SSL/TLS. Jadi, jika ada pihak jahat yang dapat membahayakan proxy terbalik Anda, mereka dapat mencatat kata sandi dan menyuntikkan malware ke situs web Anda.
  • Jika Anda atau pengguna Anda tidak dapat mengakses server utama Anda secara langsung, maka menggunakan proxy terbalik dapat menyebabkan satu titik kegagalan. Misalnya, jika Anda menggunakan proxy terbalik sebagai front untuk melayani beberapa domain, maka pemadamannya dapat menyebabkan semua domain offline secara bersamaan.
  • Jika Anda mengandalkan proxy terbalik pihak ketiga (misalnya Cloudflare), maka Anda menyerahkan informasi sensitif situs Anda kepada mereka. Meskipun mereka dipercaya, Anda tidak dapat memprediksi apa yang mungkin terjadi.
  • Memulihkan cadangan atau mendorong situs pementasan langsung di situs web yang memuat melalui proxy terbalik dapat menyebabkan situs yang diproksi berhenti memuat dengan benar.

Memilih Antara CDN dan Proxy Terbalik

CDN adalah bentuk lanjutan dari proxy terbalik dengan sebagian besar konfigurasi dan pemeliharaan dilakukan oleh pihak ketiga. Mereka dapat memberikan manfaat kinerja yang luar biasa ke situs WordPress Anda dengan sedikit usaha dari pihak Anda.

CDN tidak hanya men-cache konten dan menyajikannya dengan cepat kepada pengguna, tetapi juga mengurangi beban pada server asal Anda, menurunkan biaya bandwidth, memberikan lapisan keamanan tambahan, meningkatkan SEO situs Anda, dan membantu Anda meningkatkan skala situs web Anda dengan lebih baik.

Anda akan melihat bahwa sebagian besar manfaat yang diberikan oleh CDN sama dengan yang disediakan oleh proxy terbalik. Jadi, haruskah Anda memilih CDN daripada proxy terbalik, atau sebaliknya?

Tidak ada alasan Anda harus puas hanya dengan satu. Jika Anda sudah menginstal proxy terbalik, Anda masih akan melihat peningkatan kecepatan dan kinerja dari penggunaan CDN. Kedua lapisan cache mereka dengan baik, dan jika Anda memiliki kebutuhan penanganan permintaan yang unik (misalnya konten dinamis, e-niaga), maka Anda dapat mengonfigurasinya dengan mudah dengan beberapa header khusus yang diteruskan oleh CDN atau proxy terbalik.

Ingin mempelajari lebih lanjut tentang server proxy terbalik? Artikel ini mencakup... cara kerjanya, manfaat utama, bagaimana Anda dapat menggunakannya untuk mempercepat dan mengamankan situs WordPress Anda. Klik untuk Tweet

Ringkasan

WordPress sangat fleksibel. Anda dapat menggunakannya sebagai blog, situs e-niaga, atau bahkan Sistem Manajemen Pembelajaran. Dalam kebanyakan kasus, Anda dapat menyesuaikan WordPress agar sesuai dengan kebutuhan unik Anda.

Namun, terkadang Anda mungkin harus menggunakan domain terpisah atau server sekunder untuk menghosting situs tambahan. Seperti yang dibahas sebelumnya, mungkin karena menggunakan tumpukan teknologi yang berbeda untuk situs perusahaan besar atau meluncurkan blog WordPress untuk situs non-WordPress yang sudah ada sebelumnya.

Proxy terbalik dapat membantu dalam kedua kasus ini, membantu Anda mendapatkan hasil maksimal dari WordPress tanpa melepaskan situs web utama dan memulai dari awal.