Ubuntu 16.04te Nginxte HTTP / 2yi etkinleştir

HTTP / 2 , 1999'da standartlaştırılmış olan artık kullanılmayan HTTP / 1.1 protokolünün yeni sürümüdür. O zamandan beri web'de çok şey değişti. Uygulamalarımız geri döndüklerinden daha karmaşıktır, bu nedenle bununla başa çıkmak için altta yatan taşıma protokolünde değişiklik gerekliydi. HTTP / 2 ileilgili en önemli şey, web sayfanızı son kullanıcılar için daha hızlı hale getirmesidir.

Kısaca HTTP / 2 5 temel özellik ekler :

  • Tek, kalıcı bağlantı
  • çoklama
  • Üstbilgi sıkıştırma
  • Kaynak önceliği
  • Aktarım katmanını korur (yalnızca tarayıcılar için geçerlidir)

Tüm bu özellikleri açıklamak bu öğreticinin kapsamı dışındadır, ancak bu konuyu daha derinlemesine incelemek istiyorsanız Yüksek Performanslı Tarayıcı Ağı kitabından alıntı önerebilirim - HTTP / 2 alıntısı .

Bu kılavuzda, Ubuntu 16.04 (Xenial) üzerine Nginx'in en son kararlı sürümünü kuracağız, kendinden imzalı SSL Sertifikası oluşturacağız, Nginx'te HTTP / 2 protokolünü etkinleştireceğiz ve elinksHTTP istemcisi olarak çalışmak için metin tabanlı tarayıcı kuracağız .

Nginx'i yükle

Nginx'in en son kararlı sürümünü kurmak için birkaç komut vermeliyiz:

  1. Paketleri ve depoları imzalamak için kullanılan Nginx genel PGP anahtarını indirmeli ve depodan indirilen paketlerin gerçekliğini doğrulamak için paket yöneticisi tarafından kullanılan anahtarlığa eklemeliyiz.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. PGP anahtarını dosya sisteminden silin:

    rm nginx_signing.key
    
  3. Yeni havuz ekle

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. Paket listenizi güncelleyin ve Nginx'i yükleyin:

    apt update && apt install nginx -y
    
  5. Nginx sürümünü doğrulamak için aşağıdakileri kullanabiliriz:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Her şey yolunda giderse 1.10.x, nginx -vkomutu çalıştırırken çıktıda olduğu gibi bir desen görmelisiniz .

Kendinden imzalı sertifika ve HTTP / 2

Her ne kadar HTTP / 2 spec tarayıcıları TLS üzerinden HTTP / 2 kullanmaya zorlamasa da , tüm büyük tarayıcılar sadece HTTP / 2'yi TLS üzerinden uygulamaya karar verdiler , ancak TLS sürümü değil, sadece TLS 1.2 veya üstü.

Kurgusal example.comalan için kendinden imzalı sertifikalar oluşturacağız , üretim için geçerli alan adına ihtiyacınız var ve güvenilir CA kullanmalısınız.

  1. Özel anahtar oluştur:

    openssl genrsa -aes128 -out example.com.key 2048
    

    Bu komutu çalıştırdıktan sonra 2 kez parola girmeniz gerekir. Parolalar sinir bozucu olduğu için onu kaldıracağız.

  2. Parolayı özel anahtardan kaldır:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Sertifika İmzalama İsteği (CSR) oluşturun:

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    Tek etki alanı sertifikası oluşturuyoruz, bu nedenle ortak ad alanını example.cometki alanına eşit olarak ayarlamamız gerekiyor

  4. Sertifika oluştur:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Sertifikayı ve özel anahtarı sıralayın:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. Nginx sanal ana bilgisayar dizinleri oluşturma

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Sonra çalıştırın nano /etc/nginx/nginx.confve bir yönerge bulun include /etc/nginx/conf.d/*.conf;. Bu yönerge altına include /etc/nginx/sites-enabled/*;Save ( CTRL + O ) ekleyin ve çıkın ( CTRL + X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Bu komutla dizin example.com.confiçinde adlandırılan bir dosya oluşturun ve aşağıdaki kodu kopyalayın / yapıştırın:/etc/nginx/sites-availablenano /etc/nginx/sites-available/example.com.conf

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    Tebrikler, artık HTTP / 2 özellikli web sunucunuz var. HTTPS sanal ana makinesi içindeki yönerge http2parametresi eklendiğinde listensize HTTP / 2 desteği verilecektir .

  9. /etc/nginx/sites-available/example.com.confBu komutla sembolik bir bağlantı oluşturun :

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Yapılandırma sözdizimini test et

    nginx -t
    
  11. Değişikliklerinizi uygulamak için Nginx'i yeniden başlatın:

    systemctl restart nginx
    
  12. Dosyaya example.comalan ekle/etc/hosts

    echo '127.0.0.1    example.com' >> /etc/hosts
    

Sanal ana makinenizi test etmek için metin tabanlı tarayıcıya ihtiyacımız var - elinks.

  1. Elinks'i kurmak için aşağıdaki komutu kullanın:

    apt install elinks
    
  2. example.comSanal ana bilgisayar çalışmanızı test etmek için :

    elinks https://example.com
    
  3. Elinks tarayıcısından çıkmak için klavyenizdeki q tuşuna ve ardından Enter tuşuna basın .

HTTP / 2'yi test et

Sunucunun hangi protokolleri tanıdığını en kolay şekilde görmek opensslaraç setini kullanmaktır .

    openssl s_client -connect example.com:443 -nextprotoneg ''

Bu komutun çıktısında şöyle bir şey görmelisiniz:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

HTTP / 2'nin nasıl çalıştığını görmek için tarayıcı geliştirici araçlarını kullanabilirsiniz. HTTP / 2 protokolü ya h2da HTTP/2.0tanımlayıcılarla belirtilir. Geliştirici araçlarında ağ panelini açın ve sayfanızı yenileyin.

Sonuç

Şimdi Nginx yapılandırmasında HTTP / 2'yi etkinleştirmenin "kolay" olduğunun farkında olmalısınız , ancak bu genel resmin tamamı değildir. Öncelikle, güçlü şifre paketleriyle sunucunuzda TLS / SSL'yi etkinleştirmeyi düşünmeli ve kara listeye alınan şifreleri kullanmadığınızdan emin olmalısınız . Yalnızca sunucunuzda güçlü TLS / SSL'yi etkinleştirdikten sonra, HTTP / 2'yi etkinleştirmeyi düşünmeye başlayabilirsiniz .



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun