Schakel HTTP / 2 in Nginx in op Ubuntu 16.04

HTTP / 2 is de nieuwe versie van het inmiddels verouderde HTTP / 1.1-protocol dat al in 1999 werd gestandaardiseerd. Sindsdien is er veel veranderd op het web. Onze applicaties zijn complexer dan toen, dus om dat aan te kunnen, was een wijziging in het onderliggende transportprotocol nodig. Het belangrijkste van HTTP / 2 is dat het je webpagina sneller maakt voor de eindgebruikers.

In het kort voegt HTTP / 2 5 belangrijke kenmerken toe:

  • Enkele, permanente verbinding
  • Multiplexen
  • Kopcompressie
  • Prioriteit van middelen
  • Beveiligt transportlaag (alleen geldig voor browsers)

Het uitleggen van al deze functies valt buiten het bestek van deze tutorial, maar als je dieper op dit onderwerp in wilt gaan, kan ik een fragment uit het High Performance Browser Networking-boek aanbevelen - HTTP / 2-fragment .

In deze gids gaan we de nieuwste stabiele versie van Nginx installeren op Ubuntu 16.04 (Xenial), zelfondertekend SSL-certificaat genereren, HTTP / 2- protocol inschakelen in Nginx en een op tekst gebaseerde browser installeren elinksom als HTTP-client te fungeren.

Installeer Nginx

Om de nieuwste stabiele versie van Nginx te installeren, moeten we nogal wat opdrachten geven:

  1. We moeten de openbare PGP-sleutel van Nginx downloaden die wordt gebruikt voor het ondertekenen van pakketten en opslagplaatsen en deze toevoegen aan de sleutelring die door de pakketbeheerder wordt gebruikt om de authenticiteit van pakketten die zijn gedownload van de opslagplaats te verifiëren.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Verwijder de PGP-sleutel uit het bestandssysteem:

    rm nginx_signing.key
    
  3. Voeg een nieuwe repository toe

    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. Update uw pakketlijst en installeer Nginx:

    apt update && apt install nginx -y
    
  5. Om de Nginx-versie te verifiëren, kunnen we het volgende gebruiken:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Als alles goed gaat, zou je een patroon moeten zien zoals 1.10.xin de uitvoer bij het uitvoeren van de nginx -vopdracht.

Zelfondertekend certificaat en HTTP / 2

Hoewel HTTP / 2- specificatie browsers er niet toe dwingt HTTP / 2 via TLS te implementeren , hebben alle grote browsers besloten om alleen HTTP / 2 via TLS te implementeren , maar niet elke TLS-versie, alleen TLS 1.2 of hoger.

We gaan zelfondertekende certificaten maken voor een fictief example.comdomein, voor productie heb je een geldig domein nodig en gebruik je vertrouwde CA.

  1. Prive sleutel genereren:

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

    Na het uitvoeren van deze opdracht moet u de wachtwoordzin 2 keer invoeren. Omdat wachtzinnen vervelend zijn, gaan we het verwijderen.

  2. Verwijder wachtwoordzin uit privésleutel:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Genereer Certificate Signing Request (CSR):

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

    We maken een certificaat voor één domein, dus we moeten het veld voor de gemeenschappelijke naam gelijk maken aan het example.comdomein

  4. Certificaat aanmaken:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Sorteer certificaat en privésleutel:

    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. Maak nginx virtuele host-mappen

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Ren dan nano /etc/nginx/nginx.confen zoek een richtlijn include /etc/nginx/conf.d/*.conf;. include /etc/nginx/sites-enabled/*;Voeg onder deze richtlijn Opslaan toe ( CTRL + O ) en sluit vervolgens af ( CTRL + X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Maak een bestand met de naam example.com.confinside /etc/nginx/sites-availabledirectory met deze opdracht nano /etc/nginx/sites-available/example.com.confen kopieer en plak de volgende code:

    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;
    }
    

    Gefeliciteerd, u heeft nu een HTTP / 2 -webserver. Als u een http2parameter aan de listenrichtlijn toevoegt in de virtuele HTTPS-host, krijgt u HTTP / 2- ondersteuning.

  9. Maak een symbolische link aan /etc/nginx/sites-available/example.com.confmet deze opdracht:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Configuratiesyntaxis testen

    nginx -t
    
  11. Start Nginx opnieuw op om uw wijzigingen toe te passen:

    systemctl restart nginx
    
  12. example.comDomein toevoegen aan /etc/hostsbestand

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

Om uw virtuele host te testen hebben we een tekstgebaseerde browser nodig - elinks.

  1. Gebruik de volgende opdracht om elinks te installeren:

    apt install elinks
    
  2. Om uw example.comvirtuele hostrun te testen :

    elinks https://example.com
    
  3. Om de elinks-browser te verlaten, drukt u op q op uw toetsenbord en vervolgens op Enter .

Test HTTP / 2

Om te zien voor welke protocollen de server het gemakkelijkst adverteert, is het gebruik van openssltoolkit.

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

In de uitvoer van deze opdracht zou je zoiets als dit moeten zien:

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

Om HTTP / 2 in actie te zien, kunt u browserontwikkelaarstools gebruiken. Het HTTP / 2- protocol wordt aangegeven met h2of met HTTP/2.0ID's. Open netwerkpaneel in dev-tools en ververs je pagina.

Gevolgtrekking

Nu moet u weten hoe "gemakkelijk" het is om HTTP / 2 in te schakelen in de Nginx-configuratie, maar dat is niet het hele deel van het totaalbeeld. Eerst moet u nadenken over het inschakelen van TLS / SSL op uw server met sterke coderingssuites en ervoor zorgen dat u geen op de zwarte lijst geplaatste codes gebruikt . Pas nadat je sterke TLS / SSL op je server hebt ingeschakeld, kun je gaan nadenken over het inschakelen van HTTP / 2 .



Leave a Comment

Hoe LiteCart Shopping Cart Platform op Ubuntu 16.04 te installeren

Hoe LiteCart Shopping Cart Platform op Ubuntu 16.04 te installeren

LiteCart is een gratis en open source winkelwagenplatform geschreven in PHP, jQuery en HTML 5. Het is een eenvoudige, lichtgewicht en gebruiksvriendelijke e-commerce software

Stel NFS Share op Debian in

Stel NFS Share op Debian in

NFS is een netwerkgebaseerd bestandssysteem waarmee computers toegang hebben tot bestanden via een computernetwerk. Deze gids legt uit hoe u mappen via NF kunt weergeven

Hoe Matomo Analytics op Fedora te installeren 28

Hoe Matomo Analytics op Fedora te installeren 28

Gebruikt u een ander systeem? Matomo (voorheen Piwik) is een open source analyseplatform, een open alternatief voor Google Analytics. Matomo source wordt gehost o

Initiële veilige serverconfiguratie van Ubuntu 18.04

Initiële veilige serverconfiguratie van Ubuntu 18.04

Inleiding In deze tutorial leert u hoe u een basisbeveiligingsniveau configureert op een gloednieuwe Vultr VC2 virtuele machine met Ubunt

McMyAdmin installeren op Ubuntu 14.10

McMyAdmin installeren op Ubuntu 14.10

McMyAdmin is een Minecraft-serverbedieningspaneel dat wordt gebruikt om uw server te beheren. Hoewel McMyAdmin gratis is, zijn er meerdere edities, waarvan sommige pai zijn

Stel een TeamTalk-server in op Linux

Stel een TeamTalk-server in op Linux

TeamTalk is een conferentiesysteem waarmee gebruikers hoogwaardige audio- / videogesprekken kunnen voeren, tekstchatten, bestanden kunnen overdragen en schermen kunnen delen. Het ik

CyberPanel installeren en configureren op uw CentOS 7-server

CyberPanel installeren en configureren op uw CentOS 7-server

Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed ​​gebruikt. Wat thi

Ruby installeren en configureren met Rbenv, Rails, MariaDB, Nginx, SSL en Passenger op Ubuntu 17.04

Ruby installeren en configureren met Rbenv, Rails, MariaDB, Nginx, SSL en Passenger op Ubuntu 17.04

Ruby on Rails is een populair webraamwerk voor Ruby dat is ontwikkeld om de productiviteit van programmeurs te verhogen. Het verkrijgen van verschillende edelstenen en afhankelijkheden t

Sensu Monitoring installeren en configureren op CentOS 7

Sensu Monitoring installeren en configureren op CentOS 7

Introductie Sensu is een gratis en open source monitoringoplossing die kan worden gebruikt om server, applicatie en verschillende systeemservices te monitoren. Sensu i

Installeer phpBB With Apache op Ubuntu 16.04

Installeer phpBB With Apache op Ubuntu 16.04

PhpBB is een open source prikbordprogramma. Dit artikel laat zien hoe je phpBB bovenop een Apache-webserver op Ubuntu 16.04 installeert. Het was geschreven

Stel een niet-rootgebruiker in met Sudo Access op Ubuntu

Stel een niet-rootgebruiker in met Sudo Access op Ubuntu

Slechts één gebruiker, root, kan gevaarlijk zijn. Dus laten we dat oplossen. Vultr geeft ons de vrijheid om te doen wat we willen met onze gebruikers en onze servers

Toegang krijgen tot uw Vultr VPS

Toegang krijgen tot uw Vultr VPS

Vultr biedt verschillende manieren om toegang te krijgen tot je VPS om te configureren, installeren en gebruiken. Toegangsgegevens De standaard toegangsgegevens voor uw VPS-ar

Fuel CMS installeren op Ubuntu 16.04 LTS

Fuel CMS installeren op Ubuntu 16.04 LTS

Gebruikt u een ander systeem? Fuel CMS is een op CodeIgniter gebaseerd contentmanagementsysteem. De broncode wordt gehost op GitHub. Deze gids laat zien hoe t

Remote Servers bewaken met Zabbix op Ubuntu 16.04

Remote Servers bewaken met Zabbix op Ubuntu 16.04

Gebruikt u een ander systeem? Zabbix is ​​een gratis en open source enterprise-ready software die wordt gebruikt om de beschikbaarheid van systemen en netwerkcomponenten te bewaken

Couch CMS 2.0 installeren op een Debian 9 LAMP VPS

Couch CMS 2.0 installeren op een Debian 9 LAMP VPS

Gebruikt u een ander systeem? Couch CMS is een eenvoudig en flexibel, gratis en open source Content Management Systeem (CMS) waarmee webdesigners kunnen ontwerpen

Golang 1.8.3 installeren op CentOS 7, Ubuntu 16.04 en Debian 9

Golang 1.8.3 installeren op CentOS 7, Ubuntu 16.04 en Debian 9

Golang is een door Google ontwikkelde programmeertaal. Dankzij zijn veelzijdigheid, eenvoud en betrouwbaarheid is Golang uitgegroeid tot een van de meest bevolkte

Quassel instellen op Debian 9

Quassel instellen op Debian 9

IRC is populair bij ontwikkelaars en gebruikers van open source software. Een van de nadelen van IRC is dat wanneer u niet online bent, u importan kunt missen

Sudo gebruiken op Debian, CentOS en FreeBSD

Sudo gebruiken op Debian, CentOS en FreeBSD

Het gebruik van een sudo-gebruiker om toegang te krijgen tot een server en opdrachten uit te voeren op rootniveau is een veel voorkomende praktijk onder Linux en Unix-systeembeheerder. Het gebruik van een sud

Hoe DokuWiki op Ubuntu 16.04 LTS te installeren

Hoe DokuWiki op Ubuntu 16.04 LTS te installeren

Gebruikt u een ander systeem? DokuWiki is een open source wiki-programma geschreven in PHP waarvoor geen database nodig is. Het slaat gegevens op in tekstbestanden. DokuWik

Een Chroot opzetten op Debian

Een Chroot opzetten op Debian

Dit artikel leert u hoe u een chroot-gevangenis op Debian instelt. Ik neem aan dat u Debian 7.x gebruikt. Als u Debian 6 of 8 gebruikt, kan dit werken, bu

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.