Selain daripada Apache, Nginx ialah pelayan web paling popular yang tersedia. Selain sebagai pelayan web, ia juga boleh digunakan sebagai pengimbang beban atau proksi terbalik. Dalam tutorial ini, Quantrimang.com akan menunjukkan kepada anda bagaimana anda boleh menggunakan Nginx sebagai proksi terbalik.
Apakah proksi terbalik?
Pelayan proksi bertindak sebagai perantara antara pelanggan dan pelayan lain. Pelayan proksi mendapatkan semula sumber daripada pelayan yang anda ingin sambungkan dan menghantarnya kepada anda untuk dilihat. Proksi terbalik berfungsi dengan cara yang sama, kecuali peranannya diterbalikkan. Apabila anda meminta maklumat daripada pelayan, proksi terbalik memegang permintaan itu dan menghantarnya ke pelayan bahagian belakang yang sesuai. Ini membolehkan pentadbir sistem menggunakan pelayan untuk berbilang aplikasi, serta memastikan aliran trafik yang lebih lancar antara klien dan pelayan.

Faedah proksi terbalik
Bergantung pada aplikasi anda, anda mungkin mempunyai kes penggunaan proksi terbalik yang berbeza.
- Proksi songsang membolehkan anda menjalankan berbilang aplikasi pada pelayan yang sama - Jika anda mempunyai berbilang aplikasi yang berjalan pada pelayan yang sama, mereka tidak boleh "mendengar" pada masa yang sama pada port 80 atau 433. Dengan proksi terbalik, anda boleh mengkonfigurasinya untuk mengubah hala lalu lintas ke aplikasi individu jika perlu.
- Pengimbangan beban - Jika anda mempunyai berbilang pelayan yang menjalankan aplikasi yang sama, anda boleh menggunakan proksi terbalik untuk mengagihkan trafik secara sama rata ke setiap pelayan.
- Firewall aplikasi web - Anda boleh menggunakan proksi terbalik untuk menyembunyikan aplikasi anda dan juga untuk menapis IP spam atau melindungi daripada serangan DDOS .
- Pengelogan dan pengauditan mudah - Memandangkan semua trafik masuk diuruskan oleh proksi terbalik, lebih mudah untuk log dan memantau aliran trafik.
Konfigurasikan Nginx sebagai proksi terbalik
Untuk menyediakan Nginx sebagai proksi terbalik, artikel akan menggunakan parameter proxy_pass dalam fail konfigurasi Nginx.
Nota : Tutorial ini mengandaikan bahawa anda mempunyai sedikit pengetahuan tentang Nginx dan telah memasang dan menyediakan Nginx dalam pelayan anda.
Dalam kebanyakan kes penggunaan, Nginx akan menjadi pelayan hadapan, "mendengar" port 80 (HTTP) atau 443 (HTTPS) untuk permintaan masuk. Memandangkan hanya terdapat satu perkhidmatan "mendengar" pada port 80 atau 443, aplikasi anda perlu "mendengar" pada port lain, seperti port 8081. Konfigurasi paling mudah akan kelihatan seperti ini:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Ini bermakna semua permintaan ke myapp.com di port 80 akan diubah hala ke port 8081.
Tetapan lanjutan
Selain arahan proxy_pass , terdapat beberapa arahan lain yang boleh anda gunakan untuk persediaan yang lebih maju.
- proxy_set_header - Ini membolehkan anda menetapkan pengepala untuk dihantar ke aplikasi latar belakang. Sebagai contoh, lihat konfigurasi berikut:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Anda boleh menetapkan pengepala proksi yang diperlukan untuk dihantar ke aplikasi, memberitahu permintaan IP dan alamat jauh, dan kemudian mengeluarkan kandungan yang betul ke tapak web yang meminta.
- tamat masa proksi - Ini membolehkan anda menetapkan nilai tamat masa untuk menghantar dan menerima permintaan proksi. Sebagai contoh:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers - Ini membolehkan Nginx menahan respons pelayan proksi buat sementara waktu dan hanya menghantarnya ke pelayan yang meminta selepas pelayan proksi selesai bertindak balas. Sebagai contoh:
proxy_buffers 32 4k;
Jika aplikasi anda menghantar sejumlah besar fail, maka anda mungkin mahu melumpuhkan proxy_buffers:
proxy_buffering off;
Seperti yang anda lihat, Nginx ialah pelayan proksi terbalik yang mempunyai banyak kegunaan. Kelebihan terbesar mengenainya ialah ia mudah untuk dikonfigurasikan, mudah digunakan, dan masih membolehkan anda membuat skala dalam senario yang lebih kompleks. Untuk butiran lanjut, anda boleh melihat dokumentasi modul proksi Nginx (di https://nginx.org/en/docs/http/ngx_http_proxy_module.html) atau contoh konfigurasi (di https://www .nginx.com/resources/wiki /mula/topik/contoh/penuh/).
Semoga anda berjaya.