Nginx derinlemesine optimizasyonu

Nginx derinlemesine optimizasyonu

Nginx (engine x), hafif, yüksek eşzamanlı web sunucusu olan yüksek performanslı bir HTTP ve ters proxy sunucusudur.

Gerçek üretim ortamında, Nginx'in varsayılan yapılandırmasını bir sunucu olarak doğrudan kullanmamız hala imkansız. Sonuçta, Nginx sunucusunu daha eksiksiz ve makul bir şekilde kullanmak için, gerçek ihtiyaçlarımıza göre nginx'in varsayılan yapılandırmasında bazı gerekli ayarlamaları yapmalıyız.

Optimizasyon: sürüm numarasını gizleme, kullanıcı ve grubu değiştirme, web sayfası önbellek süresi, günlük kesme, bağlantı zaman aşımı, işlem sayısını değiştirme, web sayfası sıkıştırma, hırsızlık önleme bağlantısı, FPM parametre optimizasyonu

  • Sürüm numarasını gizle
  • Gizli sürüm, JI tarafından saldırıya uğrama riskini azaltabilir ve sunucunun güvenli çalışmasını koruyabilir.
# curl -I // Web bilgilerini kontrol edin ve nginx sürüm numarasını görebilirsiniz

# vim /usr/local/nginx/conf/nginx.conf http { mime.types içerir; default_type uygulaması / sekizli akışı; server_tokens off; // Bu satırı ekleyin ... } # systemctl stop nginx # systemctl start nginx // Hizmeti yeniden başlatın # curl -I

  • Kullanıcıları ve grupları değiştirin

Nginx çalışma zamanı süreci, web sitesi dosyalarını okurken erişim kontrolü uygulamak için kullanıcıların ve grupların desteğine ihtiyaç duyar. Ana süreç kök tarafından yaratılır ve alt süreç belirtilen kullanıcı ve grup tarafından oluşturulur.Varsayılan kimse değildir.

# vim /usr/local/nginx/conf/nginx.conf kullanıcı nginx nginx; // değiştir # systemclt yeniden başlat nginx # ps aux | grep nginx // nginx işlem bilgilerini görüntüleyin (ana işlemin kök kullanıcısı, alt sürecin nginx kullanıcısı)

  • Önbellek süresi

Nginx web sayfası verilerini istemciye geri koyduktan sonra, erişim hızını artırmak ve sunucu baskısını azaltmak için gelecekte tekrarlanan istek erişimi için önbellek süresini ayarlayabilirsiniz.Genel olarak, statik kaynaklar ayarlanır ve dinamik web sayfaları için önbellek süresi ayarlanmaz.

# vim /usr/local/nginx/conf/nginx.conf *** Sunucuya ekle: 1 günlük önbellek *** konum ~ \. (gif | jpg | jepg | png | bmp | ico) $ { kök html; 1d'de sona erer; } # systemclt yeniden başlat nginx

  • Günlük kesme
# vim /opt/fenge.sh // Günlük kesme komut dosyası yazın

#! / bin / bash

# Dosya adı: fenge.sh

d = $ (tarih -d "-1 gün" "+% Y% m% d") # Bir gün önceki saati göster

logs_path = "/ var / log / nginx"

pid_path = "/ usr / local / nginx / logs / nginx.pid"

|| mkdir -p $ logs_path

mv /usr/local/nginx/logs/access.log $ {logs_path} /test.com-access.log-$d

kill -USR1 $ (cat $ pid_path)

$ logs_path bul -mtime +30 | xargs rm -rf

# chmod + x fenge.sh # ./fenge.sh # crontab -e // Periyodik zamanlanmış görevlere ayarlayın 01 * * * /opt/fenge.sh // Her gün saat 01: 00'da yürütülür
  • Bağlantı zaman aşımı

Genel web sitelerinde, aynı müşterinin bağlantıyı uzun süre meşgul etmesini ve kaynak israfına neden olmasını önlemek için, ilgili bağlantı zaman aşımı parametresi bağlantı erişim süresini kontrol edecek şekilde ayarlanabilir.

# vim /usr/local/nginx/conf/nginx.conf http { ... keepalive_timeout 65180; // Zaman aşımını 180 saniye olarak ayarlayın client_header_timeout 80; client_body_timeout 80; ... }

keepalive_timeout 65180;

İlk parametre: İstemciyle canlı tutma zaman aşımını belirtir; 0 değeri, canlı tutma istemci bağlantısını devre dışı bırakır;

İkinci parametre: isteğe bağlı, yanıt başlığı alanında "Keep-Alive: timeout = time" değerini ayarlayın;

client_header_timeout 80;

İstemcinin istek başlığını göndermesini beklemek için zaman aşımı süresini belirtin

client_body_timeout 80;

İstek gövdesi okuma zaman aşımı süresini belirtin

# systemclt restart nginx // Hizmeti yeniden başlatın
  • İşlemlerin sayısını değiştirin

Yüksek eşzamanlılık ortamında, hızlı yanıt sağlamak, kullanıcı isteklerini işlemek ve engellemeyi önlemek için daha fazla Nginx işleminin başlatılması gerekir.

# cat / proc / cpuinfo | grep -c "fiziksel" // cpu çekirdek numarası # vim /usr/local/nginx/conf/nginx.conf worker_processes 4; // Aynı çekirdek sayısına veya 2 kez değiştirin worker_cpu_affinity 0001001001001000; // Her işlemi farklı bir cpu tarafından işlenecek şekilde ayarlayın # systemclt restart nginx // Hizmeti yeniden başlatın # ps aux | grep nginx // İşlemlerin sayısını görüntüleyin
  • Web sayfası sıkıştırma

Nginx sunucusu çıktı içeriğini sıkıştırır ve web sitesinin bant genişliğini kaydetmek ve kullanıcının erişim deneyimini iyileştirmek için iletir. Bu modül varsayılan olarak yüklenmiştir.

# vim /usr/local/nginx/conf/nginx.conf gzip açık; gzip_buffers 464k; gzip_http_version 1.1; gzip_comp_level 2; gzip_min_length 1k; gzip_vary on; gzip_types metin / düz metin / javascript uygulaması / x-javascript metni / css metni / xml uygulaması / xml uygulaması / xml + rss metni / jpg metni / png; # systemclt restart nginx // Hizmeti yeniden başlatın # curl -I -H "Accept-Encoding: gzip, deflate" 192.168.200.131/ // Özel başlık bilgisi isteyin
  • Fpm parametre optimizasyonu

Nginx'in PHP ayrıştırma işlevinin gerçeklenmesi FPM tarafından işlenir.PHP'nin işlem hızını iyileştirmek için FPM modülünün parametreleri ayarlanabilir.

1: PHP ortamını FPM modülüyle kurun;

2: FPM sürecini başlatmanın statik ve dinamik olmak üzere iki yolu vardır: Birincisi sabit verilerle FPM süreçleri oluşturacak ve ikincisi dinamik bir şekilde FPM süreçleri oluşturacaktır;

# vi php-fpm.conf pid = run / php-fpm.pid pm = dinamik pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8
  • Anti-sülük,

Bir web sitesinde, anti-sülük işlevi genellikle web sitesi içeriğinin yasadışı kullanımını önlemek, ekonomik kayıplara neden olmak ve trafik israfını önlemek için yapılandırılır.

# vim /usr/local/nginx/conf/nginx.conf konum ~ * \. (jpg | gif | swf) $ { valid_referers hiçbiri engellendi * .benet.com benet.com; eğer ($valid_referer) { yeniden yaz ^ / } } // jpg, gif, swf eşleştirilirken error.png döndür (error.png site dizinine yerleştirilir)

# systemclt restart nginx // Hizmeti yeniden başlatın

Yeniden yazdırma adresi:

Yazarın orijinal eserleri

BMW M8 prototipinin resmi casus fotoğrafları
önceki
"İnanılmaz" şiirsel galası tam bir başarıydı ve farklı bir gençlik şöleni yarattı
Sonraki
Sevme lütfen incitme! RNG, harici olaylara yanıt vermek için UZI kullanır: lütfen inanmayın!
AMG Project One güç bilgisi V6 motor + 4 motor
OPPO, teknik engelleri aşmak için yapay zeka ve artırılmış gerçekliği erken başlattı
Ağaç Dikme Günü burada, Huang Geshu'nun hikayesinden bahsedelim
"Seni Önemsiyorum" "İlk Kez Yaşayalım" Romantik Prömiyeri "Farklı Kadın Filmleri" Pekin'e Taşındı
Pekin Üniversitesi, Tsinghua Üniversitesi'nden tam ekran görüntüleniyor
RNG, başarısızlığın nedenini açıklayan bir özür videosu yayınladı ve UZI ilk kez şunları söyledi: Takım arkadaşlarını etkileyen bendim!
Hangisini satın almaya değer? 1,5 T iki tekerlekten çekiş en iyi değerdir
Nginx derin optimizasyonu
Amerikan tasarımı ve Japon tarzı Staple'ın yeni dış mekan ortak markalı serisi, öne çıkan özelliklerle dolu!
Liao Fan, kendini küçümseyen "Japon kabağı" na tepki verdi ve "Kar fırtınası" nın ilk filmi "ciltten sorumlu" Zhang Zhen, Huang Jue ve Li Guangjie'ye övgü dolu eleştiriler aldı.
OMG, takımın temel taşını oynadı! O artık zayıf olmadığı için karanlığın ışığı yükselecek
To Top