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

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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?