Rumah >Operasi dan penyelenggaraan >Nginx >Cara menggunakan nginx untuk mengelakkan hotlinking

Cara menggunakan nginx untuk mengelakkan hotlinking

王林
王林asal
2023-06-11 13:25:414064semak imbas

Dengan populariti Internet, semakin banyak tapak web menyediakan fungsi pautan luaran untuk gambar, video dan sumber lain. Walau bagaimanapun, fungsi pautan luaran ini mudah dicuri. Hotlinking bermakna tapak web lain menggunakan gambar, video dan sumber lain di tapak web anda untuk memaparkan terus sumber ini di tapak web mereka sendiri melalui alamat rujukan dan bukannya memuat turunnya ke pelayan mereka sendiri. Dengan cara ini, tapak web pautan panas boleh menggunakan trafik tapak web anda dan sumber lebar jalur secara percuma, yang membazir sumber dan menjejaskan kelajuan tapak web.

Untuk menangani masalah ini, Nginx boleh digunakan untuk menghalang hotlinking. Nginx ialah pelayan web biasa dan pelayan proksi terbalik, dan ia juga mempunyai kesan yang baik dalam menghalang pautan panas. Mari perkenalkan cara menggunakan Nginx untuk mengelakkan hotlinking.

Langkah satu: Dayakan modul antipautan panas

Modul teras Nginx sudah mempunyai fungsi berkaitan antipautan panas. Sebelum mengkonfigurasi Nginx, kami perlu terlebih dahulu mengesahkan sama ada Nginx mendayakan modul anti-pautan panas. Jika ia tidak didayakan, anda perlu menyusun semula Nginx atau memasang modul yang sepadan.

Langkah 2: Konfigurasikan peraturan antipautan panas

Fungsi antipautan panas Nginx boleh dilaksanakan melalui arahan lokasi dalam fail konfigurasi. Kami perlu menambah kandungan berikut pada fail konfigurasi hos maya Nginx:

location ~* .(gif|jpg|jpeg|png|bmp)$ {
    valid_referers none blocked yourdomain.com;
    if ($invalid_referer) {
        return   403;
    }
}

Kod di atas menunjukkan bahawa pautan luaran hanya dibenarkan pada tapak yourdomain.com. Jika sumbernya bukan yourdomain.com, ralat 403 akan dikembalikan dan akses langsung tidak akan dapat dilakukan.

Langkah 3: Tambahkan senarai putih

Jika anda perlu membenarkan tapak web atau alamat IP tertentu dipaut keluar, anda boleh menambahkannya ke senarai putih. Dalam Nginx, senarai putih boleh dicapai melalui arahan valid_referers. Sebagai contoh, kami boleh menambah kod berikut pada peraturan antipautan panas dalam fail konfigurasi untuk menambah senarai putih:

location ~* .(gif|jpg|jpeg|png|bmp)$ {
    valid_referers none blocked yourdomain.com example.com 192.168.0.1;
    if ($invalid_referer) {
        return   403;
    }
}

Dalam kod di atas, kami menambah yourdomain.com dan example.com serta alamat IP 192.168 .0.1 Ditambah pada senarai putih, tapak web ini boleh mengakses sumber anda secara langsung.

Langkah 4: Dayakan modul Tulis Semula

Modul Tulis Semula Nginx boleh digunakan untuk menulis semula URL Kita boleh menggunakan modul Tulis Semula untuk menyembunyikan URL imej tapak asal, dengan itu meningkatkan kesukaran hotlinking. Lindungi sumber tapak web. Kami perlu menambah kandungan berikut pada fail konfigurasi:

if ($http_referer !~ ^http://(www.)?yourdomain.com(/|$)) {
    return 403;
}

Kod di atas bermakna jika sumbernya bukan tapak web anda, ralat 403 akan dikembalikan. Dengan cara ini, pautan panas boleh dicegah dengan berkesan.

Ringkasan

Di atas adalah beberapa kaedah menggunakan Nginx untuk menghalang hotlinking. Melalui kaedah ini, kami boleh melindungi sumber laman web kami, mengelakkan pembaziran lebar jalur dan sumber, dan pada masa yang sama meningkatkan keselamatan tapak web. Dalam aplikasi sebenar, anda perlu mengkonfigurasi dan menyesuaikannya mengikut keperluan anda sendiri untuk memastikan keberkesanan strategi anti-lintah.

Atas ialah kandungan terperinci Cara menggunakan nginx untuk mengelakkan hotlinking. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn