Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Penggunaan selamat dan penyelenggaraan Nginx dalam persekitaran awan

Penggunaan selamat dan penyelenggaraan Nginx dalam persekitaran awan

WBOY
WBOYasal
2023-06-09 21:39:091530semak imbas

Dengan pembangunan pengkomputeran awan, semakin banyak aplikasi dan perkhidmatan digunakan dalam persekitaran awan. Sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, Nginx menjadi semakin popular dalam persekitaran awan. Artikel ini akan memperkenalkan penggunaan selamat dan penyelenggaraan Nginx dalam persekitaran awan.

1. Konfigurasi keselamatan Nginx

Dalam persekitaran awan, pelayan menghadapi permukaan serangan yang lebih luas, jadi konfigurasi keselamatan amat penting. Berikut ialah beberapa konfigurasi keselamatan Nginx biasa.

1. Cegah serangan DDoS

Serangan DDoS ialah serangan rangkaian biasa dan boleh dihalang menggunakan modul limit_conn dan limit_req Nginx. Antaranya, limit_conn boleh mengawal bilangan sambungan, dan limit_req boleh mengawal kadar permintaan. Konfigurasi kedua-dua modul ini adalah seperti berikut:

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m; 
    limit_conn addr 10; # 对每个IP地址限制10个连接数 
    
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 
    limit_req zone=one burst=5 nodelay;
    # 每秒只允许处理1个请求,最多允许5个请求在等待队列中等待
}

2 Lumpuhkan kaedah HTTP yang tidak selamat

Sesetengah kaedah permintaan HTTP kurang selamat, seperti DELETE, TRACE, CONNECT, dsb. Anda boleh menggunakan arahan limit_except Nginx untuk mengehadkan penggunaan kaedah HTTP yang tidak selamat, seperti yang ditunjukkan di bawah:

location / {
    limit_except GET POST {
        deny all;
    }
}

3 Melarang kebocoran maklumat pelayan

Penyerang boleh mengesan kelemahan dan kelemahan pelayan dengan mendapatkan maklumat pelayan. , jadi melarang kebocoran maklumat pelayan juga merupakan konfigurasi keselamatan yang penting. Anda boleh menggunakan arahan server_tokens Nginx untuk mengawal sama ada untuk memaparkan maklumat pelayan dalam pengepala respons HTTP, seperti yang ditunjukkan di bawah:

http {
    server_tokens off; # 禁止在HTTP响应头中显示服务器信息
}

2. Pengoptimuman prestasi Nginx

Aplikasi web dalam persekitaran awan biasanya perlu diproses sejumlah besar permintaan Serentak, jadi pengoptimuman prestasi juga merupakan tugas penting. Berikut ialah beberapa kaedah pengoptimuman prestasi Nginx biasa.

1. Hidupkan cache

Untuk beberapa sumber statik, seperti imej, CSS, JS, dll., anda boleh menggunakan cache Nginx untuk meningkatkan kelajuan akses. Anda boleh menetapkan laluan cache dan saiz cache melalui arahan proxy_cache_path Nginx, seperti yang ditunjukkan di bawah:

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    
    server {
        location /assets/ {
            proxy_cache my_cache;
            proxy_pass http://backend/;
        }
    }
}

2 Gunakan pemampatan Gzip

Mampatan Gzip boleh mengurangkan jumlah data yang dihantar melalui rangkaian dan menambah baik. kelajuan akses laman web. Anda boleh menggunakan perintah gzip Nginx untuk mendayakan pemampatan Gzip, seperti yang ditunjukkan di bawah:

http {
    gzip on;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

3 Konfigurasikan algoritma penjadualan

Apabila Nginx digunakan sebagai pengimbang beban, mengkonfigurasi algoritma penjadualan juga penting. Tugasan. Nginx menyediakan pelbagai algoritma penjadualan, seperti Round Robin, Least Connections, IP Hash, dll. Anda boleh menggunakan blok hulu Nginx untuk mengkonfigurasi algoritma penjadualan, seperti yang ditunjukkan di bawah:

http {
    upstream backend {
        server backend1;
        server backend2;
        
        # 使用IP Hash调度算法
        ip_hash;
    }
}

3. Pengurusan log Nginx

Dalam persekitaran awan, pengurusan log juga sangat penting. Nginx menyediakan pelbagai pilihan log, termasuk access_log, error_log, dll. Anda boleh menggunakan pilihan pengelogan ini untuk merekodkan akses pelayan, mesej ralat dan banyak lagi. Berikut ialah beberapa pilihan pembalakan yang biasa digunakan.

1.access_log

access_log ialah pilihan log yang merekodkan status akses setiap permintaan. Anda boleh menggunakan arahan access_log Nginx untuk mendayakan pengelogan akses, seperti yang ditunjukkan di bawah:

http {
    access_log /var/log/nginx/access.log;
}

2.error_log

error_log ialah pilihan log untuk merekod maklumat ralat. Anda boleh menggunakan perintah error_log Nginx untuk mendayakan pengelogan ralat, seperti yang ditunjukkan di bawah:

http {
    error_log /var/log/nginx/error.log;
}

3 Pemotongan log

Apabila fail log terlalu besar, anda boleh menggunakan fungsi pemotongan log Nginx untuk membahagikan. log. Anda boleh menggunakan alat logrotate untuk memotong fail log dengan kerap, seperti yang ditunjukkan di bawah:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 0640 nginx root
    sharedscripts
    postrotate
        /usr/sbin/nginx -s reopen
    endscript
}

Di atas ialah pengenalan kepada kaedah penggunaan dan penyelenggaraan Nginx yang selamat dalam persekitaran awan. Sudah tentu, terdapat banyak konfigurasi keselamatan lain, pengoptimuman prestasi dan kaedah pengurusan log, yang perlu dikonfigurasikan dan dioptimumkan mengikut situasi sebenar. Semoga artikel ini dapat memberi manfaat kepada semua.

Atas ialah kandungan terperinci Penggunaan selamat dan penyelenggaraan Nginx dalam persekitaran awan. 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