Cara mengatur proxy terbalik nginx

Cara mengatur proxy terbalik nginx

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
Cara mengatur proxy terbalik nginx

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
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.
TAHUKAH KAMU?
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.

  1. 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 
  2. Nonaktifkan host virtual default
    # Unlink/etc/nginx/Situs-Enabled/Default 


  3. 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:

    server dengarkan 80; Lokasi/beberapa/path/proxy_pass http: // contoh.com;  
    Menyalin

    Mengganti contoh.com dengan alamat IP atau nama host dari server yang Anda lewati. Anda juga dapat menentukan port dengan nama host, seperti 127.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.

  4. 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)
Contoh default untuk arahan fastcgi_pass

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