Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Penjelasan terperinci tentang konfigurasi keselamatan dan strategi perlindungan pelayan Nginx

Penjelasan terperinci tentang konfigurasi keselamatan dan strategi perlindungan pelayan Nginx

WBOY
WBOYasal
2023-08-04 18:25:452512semak imbas

Penjelasan terperinci tentang konfigurasi keselamatan dan strategi perlindungan pelayan Nginx

Ikhtisar:
Dengan perkembangan Internet dan kemunculan era data besar, keselamatan pelayan Web telah mendapat perhatian yang lebih dan lebih. Di antara banyak pelayan web, Nginx terkenal kerana kelebihannya seperti prestasi tinggi, keupayaan pemprosesan serentak yang tinggi dan reka bentuk modular yang fleksibel. Artikel ini akan memperkenalkan secara terperinci konfigurasi keselamatan dan strategi perlindungan pelayan Nginx, termasuk kawalan akses, proksi terbalik, pengehadan aliran dan konfigurasi HTTPS, dsb.

1. Kawalan akses

  1. Senarai hitam dan senarai putih IP: Dengan mengkonfigurasi arahan membenarkan dan menafikan Nginx, anda boleh menetapkan senarai hitam dan senarai putih IP. Dalam fail konfigurasi Nginx, anda boleh menggunakan contoh kod berikut:
http {
    server {
        location / {
            deny 192.168.1.1;
            allow all;
        }
    }
}

Dalam konfigurasi di atas, akses dengan IP 192.168.1.1 dinafikan dan IP lain boleh diakses seperti biasa.

  1. Cegah permintaan berniat jahat: Dengan menetapkan had pada bilangan sambungan dan mengehadkan kekerapan akses, anda boleh menghalang serangan permintaan berniat jahat. Ini boleh dicapai menggunakan arahan limit_conn dan limit_req dalam fail konfigurasi Nginx, seperti yang ditunjukkan di bawah:
http {
    server {
        location / {
            limit_conn conn_limit_per_ip 10;
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

Dalam konfigurasi di atas, bilangan sambungan serentak bagi setiap IP dihadkan kepada 10, dan kekerapan permintaan bagi setiap IP adalah terhad kepada 20 sesaat.

2. Proksi songsang

  1. Sembunyikan IP sebenar: Gunakan proksi terbalik untuk menyembunyikan IP sebenar dan melindungi keselamatan pelayan. Anda boleh menggunakan kod konfigurasi berikut:
http {
    server {
        location / {
            proxy_pass http://backend;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
}

Dalam konfigurasi di atas, permintaan akan dihantar ke backend1.example.com dan backend2.example.com, dan IP sebenar permintaan asal akan ditetapkan dalam pengepala HTTP .

  1. Pengimbangan beban: Melalui proksi terbalik dan pengimbangan beban, permintaan boleh diedarkan kepada berbilang pelayan bahagian belakang untuk meningkatkan prestasi dan kebolehpercayaan sistem. Anda boleh menggunakan kod konfigurasi berikut:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

Dalam konfigurasi di atas, permintaan akan dihantar kepada pelayan dalam backend1.example.com dan backend2.example.com secara sama rata.

3. Had semasa

  1. Kawal kadar akses: Dengan mengkonfigurasi arahan limit_req Nginx, anda boleh mengehadkan kadar akses setiap IP untuk mengelak daripada diserang oleh permintaan jahat. Anda boleh menggunakan kod konfigurasi berikut:
http {
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
    server {
        location / {
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

Dalam konfigurasi di atas, kadar akses setiap IP dihadkan kepada 10 kali sesaat, dan bilangan pecah permintaan ditetapkan kepada 20.

  1. Hadkan saiz muat naik fail: Dengan mengkonfigurasi arahan client_max_body_size Nginx, anda boleh mengehadkan saiz muat naik fail untuk mengelakkan muat naik fail besar daripada menduduki sumber pelayan. Anda boleh menggunakan kod konfigurasi berikut:
http {
    server {
        client_max_body_size 10m;
        ...
    }
}

Dalam konfigurasi di atas, saiz muat naik fail dihadkan kepada 10MB.

4. Konfigurasi HTTPS

  1. Jana sijil SSL: Anda boleh menggunakan alatan seperti Let's Encrypt untuk menjana sijil SSL untuk memastikan keselamatan sambungan HTTPS.
  2. Konfigurasikan sambungan HTTPS: Anda boleh menggunakan kod konfigurasi berikut untuk menukar sambungan HTTP kepada sambungan HTTPS:
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/ssl_certificate.pem;
    ssl_certificate_key /path/to/ssl_certificate_key.pem;
    ...
}

Dalam konfigurasi di atas, ubah hala sambungan HTTP ke sambungan HTTPS dan konfigurasikan sijil SSL dan kunci peribadi.

Ringkasan:
Artikel ini memperkenalkan konfigurasi keselamatan dan strategi perlindungan pelayan Nginx, termasuk kawalan akses, proksi terbalik, pengehadan aliran dan konfigurasi HTTPS, dsb. Dengan mengkonfigurasi dan menggunakan dasar ini dengan betul, keselamatan pelayan dan tapak web boleh dipertingkatkan, dan keselamatan data sistem dan pengguna boleh dilindungi. Walau bagaimanapun, perlu diingat bahawa persekitaran dan keperluan yang berbeza mungkin memerlukan konfigurasi disasarkan, dan pembangun harus membuat pilihan dan pelarasan berdasarkan keadaan sebenar.

Atas ialah kandungan terperinci Penjelasan terperinci tentang konfigurasi keselamatan dan strategi perlindungan pelayan Nginx. 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