Cara Menyiapkan Proksi Reverse Nginx

Cara Menyiapkan Proksi Reverse Nginx

Dalam panduan ini, anda akan belajar bagaimana menyediakan proksi terbalik nginx dengan arahan langkah demi langkah. Kami juga akan menerangkan bagaimana pelayan proksi terbalik berfungsi dan kelebihannya. Di samping.

Dalam tutorial ini anda akan belajar:

  • Bagaimana proksi terbalik berfungsi
  • Apakah faedah proksi terbalik
  • Cara Menyiapkan Proksi Reverse Nginx
  • Cara Lulus Tajuk
  • Cara mengkonfigurasi pengimbangan beban
  • Cara menguji konfigurasi nginx
Cara Menyiapkan Proksi Reverse Nginx

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran-bebas
Perisian Nginx
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Bagaimana proksi terbalik berfungsi?

Sistem yang terletak di antara klien dan pelayan web (atau pelayan) boleh dikonfigurasikan sebagai proksi terbalik. Perkhidmatan proksi bertindak sebagai frontend dan berfungsi dengan mengendalikan semua permintaan klien yang masuk dan mengedarkannya ke web backend, pangkalan data, dan/atau pelayan lain.



Faedah proksi terbalik

Mengkonfigurasi proksi terbalik nginx bermaksud bahawa semua permintaan masuk dikendalikan pada satu titik, yang memberikan beberapa kelebihan:

  • Mengimbangi beban - Proksi terbalik mengedarkan sambungan masuk ke pelayan backend, dan bahkan boleh melakukannya mengikut beban semasa yang setiap pelayan berada di bawah. Ini memastikan bahawa tidak ada pelayan backend yang dibebankan dengan permintaan. Ia juga menghalang downtime, kerana proksi terbalik boleh mengubah trafik jika pelayan backend berlaku untuk pergi ke luar talian.
  • Pembalakan pusat - Daripada mempunyai pelbagai pelayan menjana fail log, proksi terbalik boleh log semua maklumat yang relevan di satu lokasi. Ini menjadikan pekerjaan pentadbir sangat mudah, kerana masalah dapat diasingkan lebih cepat dan tidak perlu menghuraikan fail log dari pelbagai lokasi ketika masalah penyelesaian masalah.
  • Keselamatan yang lebih baik - Proksi terbalik akan menghalang maklumat mengenai pelayan backend, serta bertindak sebagai barisan pertahanan pertama terhadap serangan masuk. Oleh kerana proksi terbalik menapis lalu lintas sebelum meneruskannya ke backend, hanya lalu lintas yang tidak berbahaya yang dihantar ke pelayan lain.
  • Prestasi yang lebih baik - Pelayan proksi terbalik boleh membuat keputusan pintar mengenai cara mengedarkan beban di seluruh pelayan backend, yang menghasilkan masa tindak balas yang lebih cepat. Tugas pelayan biasa lain seperti caching dan mampatan juga boleh dimuat turun ke pelayan proksi terbalik, membebaskan sumber untuk pelayan backend.
ADAKAH KAMU TAHU?
Pelayan proksi terbalik bukan komponen yang diperlukan dalam setiap senario hosting web. Kelebihan proksi terbalik menjadi paling jelas di bawah keadaan trafik yang tinggi atau situasi di mana pelayan backend berganda digunakan dan memerlukan beberapa bentuk pengimbangan beban.

Mengapa nginx?

Sekarang kami telah menggariskan kelebihan proksi terbalik, anda mungkin tertanya -tanya mengapa anda harus mengkonfigurasi satu dengan nginx, khususnya. Skala nginx dan keupayaannya yang terbukti untuk mengendalikan jumlah sambungan yang sangat tinggi bermakna ia sesuai untuk penggunaan sebagai proksi terbalik dan pengimbang beban.

Aplikasi biasa adalah meletakkan nginx antara pelanggan dan pelayan web, di mana ia boleh beroperasi sebagai titik akhir untuk penyulitan SSL dan pemecut web. Operasi yang biasanya akan meningkatkan beban pada pelayan web, seperti penyulitan, pemampatan, dan caching semuanya boleh dilakukan dengan lebih cekap melalui proksi terbalik nginx.

Cara Menyiapkan Nginx Reverse Proxy Langkah demi Langkah

Oleh kerana kami telah menjelaskan bagaimana proksi terbalik berfungsi dan apakah kelebihannya menggunakannya, dalam bahagian ini, kami akan meneruskan langkah -langkah yang diperlukan untuk menubuhkan proksi terbalik nginx.

  1. Pasang nginxyou boleh memasang nginx dengan pengurus pakej sistem anda. Mengenai pengedaran Ubuntu dan Debian, perintahnya adalah:
    $ sudo apt-get pemasangan nginx 

    Pada centos dan pengagihan topi merah:

    # yum pasang nginx 
  2. Lumpuhkan hos maya lalai
    # unlink/etc/nginx/sites-enabled/lalai 


  3. Buat Fileall konfigurasi proksi terbalik dari tetapan untuk proksi terbalik akan masuk ke dalam fail konfigurasi, dan fail ini perlu diletakkan di dalam direktori yang tersedia. Mulakan dengan menavigasi ke direktori berikut:
    # cd/etc/nginx/tapak yang tersedia 

    Kemudian gunakan VI atau editor teks pilihan anda untuk membuat fail konfigurasi:

    # VI Reverse-Proxy.Conf 

    Tampalkan templat konfigurasi berikut ke dalam fail yang baru dibuat ini:

    pelayan mendengar 80; lokasi/beberapa/path/proxy_pass http: // contoh.com;  
    Salinan

    Menggantikan Contoh.com dengan alamat IP atau nama hos pelayan yang anda hantar ke. Anda juga boleh menentukan port dengan nama hos, seperti 127.0.0.1: 8080 sebagai contoh. Simpan perubahan anda dan kemudian keluar dari editor teks.

    Perhatikan bahawa ini akan berfungsi untuk pelayan HTTP, tetapi Nginx juga menyokong protokol lain. Kami akan menampung pilihan tersebut di bahagian seterusnya.

  4. Dayakan proksi dengan tetapan anda disimpan, aktifkan konfigurasi baru dengan membuat pautan simbolik ke direktori yang dibolehkan tapak:
    # ln -s/etc/nginx/laman web-tersedia/terbalik-proksi.conf/etc/nginx/sites-enabled/reverse-proxy.Conf 

Pelayan bukan HTTP

Contoh di atas menunjukkan cara lulus permintaan ke pelayan http, tetapi juga mungkin untuk nginx bertindak sebagai proksi terbalik untuk Fastcgi, uwsgi, SCGI, dan Memcached. Bukannya menggunakan proxy_pass Arahan yang ditunjukkan di atas, ganti dengan jenis yang sesuai:

  • proxy_pass (pelayan http - seperti yang dilihat di atas)
  • fastcgi_pass (pelayan fastcgi)
  • uwsgi_pass (pelayan uwsgi)
  • scgi_pass (pelayan SCGI)
  • memcached_pass (pelayan memcached)
Contoh lalai untuk arahan fastcgi_pass

Cara Lulus Tajuk

Untuk mengkonfigurasi apa yang dikatakan pelayan proksi terbalik ke pelayan lain, kami dapat menentukannya dalam fail konfigurasi yang kami buat sebelumnya. Menggunakan proxy_set_header Arahan untuk menyesuaikan tajuk.
Mereka boleh dikonfigurasi di pelayan, lokasi, atau blok HTTP. Sebagai contoh:

lokasi/some/path/proxy_set_header host $ host; proxy_set_header x-forwarded-proto $ skema; proxy_set_header x-real-ip $ remote_addr; proxy_pass http: // contoh.com; 
Salinan

Contoh di atas mentakrifkan tiga jenis tajuk dan menetapkannya kepada pembolehubah masing -masing. Terdapat banyak pilihan yang berbeza untuk melepasi tajuk, tetapi contoh ini mempamerkan tiga yang sangat biasa.

The Tuan rumah Header mengandungi maklumat mengenai tuan rumah yang diminta. The X-Forwarded-Proto spesies header jika permintaan itu http atau https. Dan juga X-REAL-IP Header mengandungi alamat IP pelanggan yang meminta.

Cara mengkonfigurasi pengimbangan beban

Pengimbangan beban adalah salah satu justifikasi utama untuk mengkonfigurasi pelayan proksi terbalik. Kita boleh memulakan dengan menambahkan beberapa baris tambahan ke fail konfigurasi yang kami buat sebelumnya. Lihat contoh:

hulu backend_servers pelayan host1.Contoh.com; pelayan host2.Contoh.com; Host Server3.Contoh.com;  pelayan Dengar 80; Contoh Server_name.com; lokasi/proxy_pass http: // backend_servers; 
Salinan

Dalam contoh ini, kami telah menambah konteks yang disebut backend_servers. Di dalamnya, nama host/IP setiap pelayan ditentukan pada baris berasingan.

Di dalam proxy_pass Arahan, di mana kami biasanya memasukkan nama hos atau alamat IP, sebaliknya kami telah menetapkan nama konteks hulu yang ditakrifkan di atas: backend_servers.

Konfigurasi ini akan mengemukakan permintaan masuk ke Contoh.com kepada tiga tuan rumah yang berbeza yang dinyatakan di hulu kami. Secara lalai, nginx akan mengemukakan permintaan ini pusingan robin, yang bermaksud bahawa setiap tuan rumah mengambil giliran.



Konfigurasikan algoritma mengimbangi beban

Seperti yang disebutkan, bulat Robin adalah algoritma lalai yang akan digunakan oleh Nginx untuk memutar permintaan di hulu. Terdapat beberapa algoritma lain yang tersedia, yang sesuai dengan keadaan tertentu yang lebih baik:

  • paling rendah_conn - Mengedarkan sambungan masuk ke pelayan backend berdasarkan bilangan sambungan aktif semasa mereka. Pelayan hanya akan menerima permintaan jika ia mempunyai sedikit sambungan pada masa itu. Ini amat berguna dalam aplikasi yang memerlukan sambungan tahan lama kepada pelanggan.
  • ip_hash - Mengedarkan sambungan masuk berdasarkan alamat IP pelanggan. Ini berguna jika anda perlu membuat konsistensi sesi.
  • hash - Mengedarkan sambungan masuk berdasarkan kunci hash. Ini membantu dengan tuan rumah memcached, terutamanya.

Tentukan kaedah mengimbangi beban di bahagian atas konteks hulu, seperti itu:

hulu backend_servers paling tidak_conn; Host Server1.Contoh.com; pelayan host2.Contoh.com; Host Server3.Contoh.com; 
Salinan

Cara menguji konfigurasi nginx

Anda harus selalu menguji konfigurasi anda untuk kesilapan sebaik sahaja mengedit .Conf fail, dan kemudian mulakan semula nginx.

# perkhidmatan nginx configtest # service nginx mulakan semula 

Kesimpulan

Dalam artikel ini kita melihat bagaimana untuk menyediakan pelayan proksi terbalik dengan nginx. Kami juga belajar tentang bagaimana pelayan proksi terbalik berfungsi, dan apakah kelebihannya menggunakannya. Kami meliputi pengimbangan beban dan pelbagai pilihan yang diperlukan oleh pentadbir untuk mengkonfigurasinya dengan proksi terbalik mereka sendiri.

Setelah mengikuti langkah -langkah dalam panduan ini, semoga anda dapat melihat peningkatan prestasi yang signifikan dalam persekitaran web anda, dan lebih mudah untuk mengurus sekarang bahawa sambungan masuk dihantar ke satu titik.

Tutorial Linux Berkaitan:

  • Pemasangan tajuk kernel Manjaro Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Berapa kerap anda perlu reboot pelayan Linux anda?
  • OpenLitespeed sebagai proksi terbalik
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Ubuntu 20.04 Panduan