Rumah > Operasi dan penyelenggaraan > Nginx > Reka bentuk seni bina keselamatan Nginx: melindungi permintaan dan respons HTTP

Reka bentuk seni bina keselamatan Nginx: melindungi permintaan dan respons HTTP

王林
Lepaskan: 2023-06-10 13:27:17
asal
953 orang telah melayarinya

Nginx ialah pelayan HTTP berprestasi tinggi dan perisian proksi terbalik yang digunakan secara meluas dalam aplikasi Internet. Dengan perkembangan pesat aplikasi Internet, keselamatan Nginx juga telah mendapat perhatian yang semakin meningkat. Artikel ini akan menyelidiki reka bentuk seni bina keselamatan Nginx, pelaksanaan dan penyelesaian pengoptimumannya untuk melindungi keselamatan permintaan dan respons HTTP.

1. Seni bina Nginx

Nginx menggunakan seni bina modular, dan semua fungsi dilaksanakan melalui modul. Nginx terbahagi kepada dua modul teras: Modul acara dan modul HTTP. Modul Acara ialah mekanisme pemprosesan acara Nginx dan bertanggungjawab terutamanya untuk prestasi tinggi Nginx dan konkurensi tinggi modul HTTP ialah modul utama untuk Nginx mengendalikan permintaan dan respons HTTP.

2. Isu Keselamatan Nginx

Dengan pembangunan aplikasi Internet yang berterusan, Nginx semakin kerap diserang. Berikut ialah isu keselamatan Nginx biasa:

  1. Serangan DDos: Pengguna berniat jahat menduduki sumber pelayan melalui sejumlah besar permintaan yang tidak sah, menjadikannya mustahil untuk pengguna biasa mengakses tapak web secara normal.
  2. Serangan CC: Dengan meniru gelagat pengguna biasa, membuat permintaan berniat jahat dan menduduki sumber pelayan tanpa menyebabkan pelayan ranap.
  3. Serangan suntikan SQL: Penyerang memperoleh atau mengganggu data dengan menyuntik pernyataan SQL yang berniat jahat.
  4. Serangan skrip merentas tapak: Penyerang menerbitkan skrip berniat jahat di tapak web dan mendapatkan maklumat sensitif seperti kuki pengguna melalui serangan XSS.
  5. Serangan pemintasan tindak balas HTTP: Penyerang memperoleh maklumat sensitif pengguna, seperti kata laluan, dsb. dengan mendengar respons HTTP.

3. Reka bentuk seni bina keselamatan Nginx

Untuk melindungi keselamatan Nginx, ia perlu dilindungi daripada pelbagai arah. Berikut ialah reka bentuk seni bina keselamatan Nginx yang biasa digunakan:

  1. Sekatan IP

Dengan menambahkan peraturan sekatan IP dalam konfigurasi Nginx, akses IP berniat jahat boleh disekat. Contohnya:

location / {
  deny 123.45.67.8/32; #禁止IP地址为123.45.67.8的访问
  allow all; #允许所有其他IP地址的访问
  ...
}
Salin selepas log masuk
  1. Protokol HTTPS

Protokol HTTPS boleh menghalang paket data daripada dipintas dengan berkesan dan mencapai keselamatan penghantaran data Nginx menyokong protokol HTTPS. Anda hanya perlu menambah laluan ke sijil SSL dan kunci peribadi dalam konfigurasi Nginx adalah seperti berikut:

server {
    listen       443 ssl;
    server_name  localhost;
    ssl_certificate      cert.pem;
    ssl_certificate_key  cert.key;
    ...
}
Salin selepas log masuk
  1. Firewall

Memasang firewall boleh memantau. dan mengawal trafik yang diakses oleh rangkaian luaran Ambil langkah berjaga-jaga untuk memastikan keselamatan pelayan. Anda boleh menggunakan alat firewall seperti iptables atau firewalld.

  1. Pencegahan serangan CSRF

Untuk mengelakkan serangan CSRF, anda boleh menetapkan pengepala respons X-Frame-Options dalam Nginx untuk menghalang halaman daripada dipaparkan dalam iframe. Contohnya:

add_header X-Frame-Options SAMEORIGIN;
Salin selepas log masuk
  1. Pasang perisian anti-virus

Memasang perisian anti-virus boleh memastikan keselamatan data dan kebolehpercayaan pelayan Nginx dan mencegah jangkitan virus dan kehilangan data .

  1. Proksi terbalik

Nginx boleh digunakan sebagai pelayan proksi terbalik Melalui strategi proksi terbalik dan sokongan kolaboratif CDN, ia boleh meningkatkan kelajuan akses pelayan web dan menentang keupayaan serangan DDoS.

4. Pelan pengoptimuman Nginx

Untuk meningkatkan prestasi dan keselamatan Nginx, ia perlu dioptimumkan. Berikut ialah pelan pengoptimuman Nginx:

  1. Laraskan bilangan proses Nginx Worker

Nginx ialah model berbilang proses Proses utama bertanggungjawab untuk menguruskan semua kanak-kanak proses. Ia diluluskan worker_processes dalam fail konfigurasi untuk menentukan bilangan proses Worker.

  1. Laraskan saiz penimbal Nginx

Dengan melaraskan saiz cache Nginx, anda boleh mengurangkan penggunaan lebar jalur rangkaian dan meningkatkan kelajuan tindak balas Nginx. Tetapkan melalui proxy_buffer_size, proxy_buffers, proxy_busy_buffers_size arahan dalam fail konfigurasi Adalah disyorkan untuk melaraskan mengikut keperluan sebenar.

  1. Dayakan pemampatan Gzip

Mendayakan pemampatan Gzip boleh menjimatkan trafik tapak web dan meningkatkan kelajuan akses tapak web. Tambahkan konfigurasi berikut dalam konfigurasi Nginx:

gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Salin selepas log masuk
  1. Mengkonfigurasi modul Keepalive

Mengkonfigurasi Keepalive boleh mengurangkan bilangan sambungan TCP antara Nginx dan klien, meningkatkan prestasi daripada Nginx dan throughput. Tetapkan melalui arahan keepalive_requests dan keepalive_timeout dalam konfigurasi Nginx.

5. Ringkasan

Reka bentuk seni bina keselamatan Nginx termasuk sekatan IP, protokol HTTPS, firewall, pencegahan serangan CSRF, perisian anti-virus, proksi terbalik, dll., yang boleh meningkatkan keselamatan dengan berkesan Nginx. Pada masa yang sama, penyelesaian pengoptimuman Nginx termasuk melaraskan bilangan proses Pekerja, saiz penimbal, mendayakan pemampatan Gzip, mengkonfigurasi Keepalive, dsb., yang boleh meningkatkan prestasi Nginx. Melalui langkah-langkah di atas, keselamatan dan kestabilan pelayan Nginx dapat dijamin sepenuhnya, dan keselamatan permintaan dan respons HTTP dapat dilindungi.

Atas ialah kandungan terperinci Reka bentuk seni bina keselamatan Nginx: melindungi permintaan dan respons HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan