Cara mengatur proxy terbalik nginx
- 4575
- 629
- Dwayne Hackett
Dalam panduan ini, Anda akan belajar cara mengatur proxy terbalik nginx dengan instruksi langkah demi langkah. Kami juga akan menjelaskan bagaimana server proxy terbalik bekerja dan apa keuntungannya. Selain itu, kami juga membahas berbagai opsi konfigurasi yang biasa dipekerjakan oleh administrator Linux di server proxy terbalik mereka.
Dalam tutorial ini Anda akan belajar:
- Bagaimana cara kerja proxy terbalik
- Apa manfaat dari proxy terbalik
- Cara mengatur proxy terbalik nginx
- Bagaimana melewati header
- Cara mengkonfigurasi penyeimbangan beban
- Cara menguji konfigurasi nginx
Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | Distribusi-independen |
Perangkat lunak | Nginx |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah. |
Konvensi | # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa |
Bagaimana cara kerja proxy terbalik?
Sistem yang berada di antara klien dan server web (atau server) dapat dikonfigurasi sebagai proxy terbalik. Layanan proxy bertindak sebagai frontend dan bekerja dengan menangani semua permintaan klien yang masuk dan mendistribusikannya ke web backend, database, dan/atau server lainnya.
Manfaat dari proxy terbalik
Mengkonfigurasi proxy terbalik nginx berarti bahwa semua permintaan yang masuk ditangani pada satu titik, yang memberikan beberapa keuntungan:
- Penyeimbang beban - Proxy terbalik mendistribusikan koneksi yang masuk ke server backend, dan bahkan dapat melakukannya sesuai dengan beban saat ini bahwa setiap server berada di bawah. Ini memastikan bahwa tidak ada server backend yang kelebihan permintaan. Ini juga mencegah downtime, karena proxy terbalik dapat mengalihkan traffic jika server backend terjadi offline.
- Logging Tengah - Daripada memiliki beberapa server menghasilkan file log, proxy terbalik dapat mencatat semua informasi yang relevan di satu lokasi. Ini membuat pekerjaan administrator jauh lebih mudah, karena masalah dapat diisolasi lebih cepat dan tidak perlu menguraikan file log dari beberapa lokasi saat pemecahan masalah masalah.
- Keamanan yang lebih baik - Proxy terbalik akan mengaburkan informasi tentang server backend, serta bertindak sebagai garis pertahanan pertama terhadap serangan yang masuk. Karena proxy terbalik menyaring lalu lintas sebelum meneruskannya ke backend, hanya lalu lintas yang tidak berbahaya yang diteruskan ke server lain.
- Kinerja yang lebih baik - Server proxy terbalik dapat membuat keputusan cerdas tentang cara mendistribusikan beban di server backend, yang menghasilkan waktu respons yang lebih cepat. Tugas server umum lainnya seperti caching dan kompresi juga dapat diturunkan ke server proxy terbalik, membebaskan sumber daya untuk server backend.
Server proxy terbalik bukanlah komponen yang diperlukan dalam setiap skenario hosting web. Keuntungan dari proxy terbalik menjadi paling jelas di bawah kondisi lalu lintas tinggi atau situasi di mana beberapa server backend digunakan dan membutuhkan beberapa bentuk penyeimbangan beban.
Mengapa nginx?
Sekarang kami telah menguraikan keunggulan proxy terbalik, Anda mungkin bertanya -tanya mengapa Anda harus mengkonfigurasi satu dengan Nginx, khususnya. Skalabilitas nginx dan kemampuannya yang terbukti untuk menangani volume koneksi yang sangat tinggi berarti sempurna untuk penyebaran sebagai proxy terbalik dan penyeimbang beban.
Aplikasi umum adalah menempatkan Nginx antara klien dan server web, di mana ia dapat beroperasi sebagai titik akhir untuk enkripsi SSL dan akselerator web. Operasi yang biasanya meningkatkan beban pada server web, seperti enkripsi, kompresi, dan caching semuanya dapat dilakukan secara lebih efisien melalui proxy terbalik nginx.
Cara Mengatur Nginx Reverse Proxy Langkah demi Langkah Instruksi
Karena kami telah menjelaskan bagaimana proxy terbalik bekerja dan apa keuntungan menggunakannya, di bagian ini kami akan membahas langkah -langkah yang diperlukan untuk mengatur proxy terbalik nginx.
- Instal NginXyou dapat menginstal Nginx dengan Manajer Paket Sistem Anda. Pada distribusi Ubuntu dan Debian, perintahnya adalah:
$ sudo apt-get install nginx
Pada distribusi Centos dan Red Hat:
# yum instal nginx
- Nonaktifkan host virtual default
# Unlink/etc/nginx/Situs-Enabled/Default
- Buat konfigurasi proxy terbalik Fileall dari pengaturan untuk proxy terbalik akan masuk ke dalam file konfigurasi, dan file ini perlu ditempatkan di dalam direktori yang tersedia untuk situs. Mulailah dengan menavigasi ke direktori berikut:
# cd/etc/nginx/situs-tersedia
Kemudian gunakan VI atau editor teks pilihan Anda untuk membuat file konfigurasi:
# VI-Proxy Reverse.conf
Tempel templat konfigurasi berikut ke dalam file yang baru dibuat ini:
Menyalinserver dengarkan 80; Lokasi/beberapa/path/proxy_pass http: // contoh.com;
Mengganti
contoh.com
dengan alamat IP atau nama host dari server yang Anda lewati. Anda juga dapat menentukan port dengan nama host, seperti127.0.0.1: 8080
Misalnya. Simpan perubahan Anda dan kemudian keluar dari editor teks.Perhatikan bahwa ini akan berfungsi untuk server HTTP, tetapi Nginx juga mendukung protokol lain. Kami akan membahas opsi -opsi itu di bagian berikutnya.
- Aktifkan proxy dengan pengaturan Anda yang disimpan, aktifkan konfigurasi baru dengan membuat tautan simbolis ke direktori yang diaktifkan situs:
# ln -s/etc/nginx/situs-tersedia/reverse-proxy.conf/etc/nginx/situs-diable/reverse-proxy.conf
Server non-HTTP
Contoh di atas menunjukkan cara meneruskan permintaan ke server HTTP, tetapi juga dimungkinkan bagi Nginx untuk bertindak sebagai proxy terbalik Fastcgi, UWSGI, SCGI, Dan memcached. Daripada menggunakan proxy_pass
Petunjuk yang ditunjukkan di atas, ganti dengan tipe yang sesuai:
- proxy_pass (server http - seperti yang terlihat di atas)
- fastcgi_pass (server fastcgi)
- UWSGI_PASS (server UWSGI)
- SCGI_PASS (SCGI Server)
- memcached_pass (server memcached)
Bagaimana melewati header
Untuk mengkonfigurasi header apa yang diteruskan server proxy terbalik ke server lain, kami dapat mendefinisikannya di file konfigurasi yang kami buat sebelumnya. Menggunakan proxy_set_header
Petunjuk untuk menyesuaikan header.
Mereka dapat dikonfigurasi di server, lokasi, atau blok http. Misalnya:
lokasi/beberapa/path/proxy_set_header host $ host; skema $ proxy_set_header X-Forwarded-Proto $; proxy_set_header x-real-ip $ remote_addr; proxy_pass http: // contoh.com;
Menyalin Contoh di atas mendefinisikan tiga jenis header dan mengaturnya ke variabel masing -masing. Ada banyak pilihan berbeda untuk header yang lewat, tetapi contoh ini menampilkan tiga yang sangat umum.
Itu Tuan rumah
Header berisi informasi tentang host mana yang diminta. Itu X-FORWARDED-PROTO
spesies header jika permintaannya http atau https. Dan X-real-ip
Header berisi alamat IP dari klien yang meminta.
Cara mengkonfigurasi penyeimbangan beban
Load Balancing adalah salah satu pembenaran utama untuk mengonfigurasi server proxy terbalik. Kami dapat memulai dengan menambahkan beberapa baris tambahan ke file konfigurasi yang kami buat sebelumnya. Lihatlah contoh:
hulu backend_servers server host1.contoh.com; server host2.contoh.com; server host3.contoh.com; server dengarkan 80; Contoh server_name.com; Lokasi/proxy_pass http: // backend_servers;
Menyalin Dalam contoh ini, kami telah menambahkan konteks yang disebut backend_server
. Di sana, nama host/IP masing -masing server ditentukan pada baris terpisah.
Dalam proxy_pass
Petunjuk, di mana kami biasanya memasukkan nama host atau alamat IP, alih -alih kami telah menentukan nama konteks hulu yang ditentukan di atas: backend_server
.
Konfigurasi ini akan meneruskan permintaan yang masuk contoh.com
ke tiga host berbeda yang ditentukan di hulu kami. Secara default, Nginx akan meneruskan permintaan ini Round Robin, yang berarti bahwa setiap host mengambil giliran untuk mengajukan permintaan.
Konfigurasikan algoritma penyeimbangan beban
Seperti disebutkan, Round Robin adalah algoritma default yang akan digunakan Nginx untuk memutar permintaan di hulu. Ada beberapa algoritma lain yang tersedia, yang lebih sesuai dengan situasi tertentu:
- LEWAT_CONN - Mendistribusikan koneksi yang masuk ke server backend berdasarkan jumlah koneksi aktif saat ini. Server hanya akan menerima permintaan jika memiliki jumlah koneksi paling sedikit pada saat itu. Ini sangat membantu dalam aplikasi yang membutuhkan koneksi jangka panjang ke klien.
- ip_hash - Mendistribusikan koneksi yang masuk berdasarkan alamat IP klien. Ini bermanfaat jika Anda perlu membuat konsistensi sesi.
- hash - Mendistribusikan koneksi yang masuk berdasarkan kunci hash. Ini sangat membantu dengan host memcached, khususnya.
Tentukan metode penyeimbang beban di bagian atas konteks hulu, seperti itu:
hulu backend_servers lowlech_conn; server host1.contoh.com; server host2.contoh.com; server host3.contoh.com;
Menyalin Cara menguji konfigurasi nginx
Anda harus selalu menguji konfigurasi Anda untuk kesalahan segera setelah mengedit .conf
file, dan kemudian restart nginx.
# service nginx configTest # service nginx restart
Kesimpulan
Pada artikel ini kami melihat cara mengatur server proxy terbalik dengan nginx. Kami juga belajar tentang bagaimana server proxy terbalik bekerja, dan apa keuntungannya menggunakan satu. Kami membahas penyeimbangan beban dan berbagai opsi yang dibutuhkan administrator untuk mengonfigurasinya di proxy terbalik mereka sendiri.
Setelah mengikuti langkah -langkah dalam panduan ini, semoga Anda akan melihat peningkatan kinerja yang signifikan di lingkungan web Anda, dan merasa lebih mudah untuk dikelola sekarang karena koneksi yang masuk dikirim ke satu titik tunggal.
Tutorial Linux Terkait:
- Instalasi Header Kernel Manjaro Linux
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Seberapa sering Anda harus me -reboot server linux Anda?
- OpenLitespeed sebagai proxy terbalik
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
- Sistem Linux Hung? Cara melarikan diri ke baris perintah dan…
- Ubuntu 20.04 Panduan