Instaloni Nginx
Certifikatë e vetë-nënshkruar dhe HTTP/2
Instaloni lidhjet
Testoni HTTP/2
konkluzioni
HTTP/2 është versioni i ri i protokollit tashmë të vjetëruar HTTP/1.1 i cili u standardizua në vitin 1999. Shumëçka në ueb ka ndryshuar që atëherë. Aplikacionet tona janë më komplekse sesa ishin kthyer, kështu që për të përballuar këtë, ishte i nevojshëm ndryshimi në protokollin themelor të transportit. Gjëja më e rëndësishme në lidhje me HTTP/2 është se do ta bëjë faqen tuaj të internetit më të shpejtë për përdoruesit përfundimtarë.
Shkurtimisht, HTTP/2 shton 5 veçori kryesore:
- Lidhje e vetme, e vazhdueshme
- Multipleksimi
- Kompresimi i kokës
- Prioritizimi i burimeve
- Siguron shtresën e transportit (e vlefshme vetëm për shfletuesit)
Shpjegimi i të gjitha këtyre veçorive është jashtë qëllimit të këtij tutoriali, por nëse doni të gërmoni më thellë në këtë temë, unë mund të rekomandoj fragment nga libri "Rrjetëzimi i shfletuesit me performancë të lartë" - fragment HTTP/2 .
Në këtë udhëzues ne do të instalojmë versionin më të fundit të qëndrueshëm të Nginx në Ubuntu 16.04 (Xenial), do të gjenerojmë Certifikatë SSL të vetë-nënshkruar, do të aktivizojmë protokollin HTTP/2 në Nginx dhe do të instalojmë shfletuesin e bazuar në tekst për elinkstë vepruar si klient HTTP.
Instaloni Nginx
Për të instaluar versionin më të fundit të qëndrueshëm të Nginx, duhet të lëshojmë disa komanda:
Ne duhet të shkarkojmë çelësin publik PGP Nginx të përdorur për nënshkrimin e paketave dhe depove dhe ta shtojmë atë në çelësin e përdorur nga menaxheri i paketave për të verifikuar vërtetësinë e paketave të shkarkuara nga depoja.
wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
Fshini çelësin PGP nga sistemi i skedarëve:
rm nginx_signing.key
Shto një depo të re
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
Përditësoni listën tuaj të paketave dhe instaloni Nginx:
apt update && apt install nginx -y
Për të verifikuar versionin Nginx, ne mund të përdorim sa vijon:
nginx -v
# nginx version: nginx/1.10.1
Nëse gjithçka shkon mirë, duhet të shihni modelin si 1.10.xnë dalje kur ekzekutoni nginx -vkomandën.
Certifikatë e vetë-nënshkruar dhe HTTP/2
Although HTTP/2 spec doesn’t force browsers to implement HTTP/2 over TLS, all major browsers decided to only implement HTTP/2 over TLS, but not any TLS version, only TLS 1.2 or higher.
Ne do të krijojmë example.comcertifikata të vetë-nënshkruara për domenin imagjinar , për prodhimin ju duhet domeni i vlefshëm dhe përdorni CA të besuar.
Gjeneroni çelësin privat:
openssl genrsa -aes128 -out example.com.key 2048
Pas ekzekutimit të kësaj komande, do t'ju duhet të futni frazën e kalimit 2 herë. Për shkak se frazat e kalimit janë të bezdisshme, ne do ta heqim atë.
Hiq frazën e kalimit nga çelësi privat:
openssl rsa -in example.com.key -out example.com.key
Krijo një kërkesë për nënshkrimin e certifikatës (CSR):
openssl req -new -sha256 -key example.com.key -out cert-request.csr
We are creating single-domain certificate so we need to set common-name field equal to example.com domain
Krijo certifikatë:
openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
Rendit certifikatën dhe çelësin privat:
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
Krijoni drejtoritë e hosteve virtuale nginx
mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
Pastaj vraponi nano /etc/nginx/nginx.confdhe gjeni një direktivë include /etc/nginx/conf.d/*.conf;. Nën këtë direktivë shtoni include /etc/nginx/sites-enabled/*;Save ( CTRL+O ) dhe më pas dilni ( CTRL+X ).
##
# Virtual Hosts
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Krijo një skedar të quajtur example.com.confbrenda /etc/nginx/sites-availabledirektorisë me këtë komandë nano /etc/nginx/sites-available/example.com.confdhe kopjo/ngjit kodin e mëposhtëm:
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;
}
Urime, tani e keni serverin në internet të aktivizuar HTTP/2 . Shtimi i http2parametrit në listendirektivë brenda hostit virtual HTTPS do t'ju japë mbështetje për HTTP/2 .
Krijo një lidhje simbolike për /etc/nginx/sites-available/example.com.confme këtë komandë:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
Testoni sintaksën e konfigurimit
nginx -t
Rinisni Nginx për të aplikuar ndryshimet tuaja:
systemctl restart nginx
Shtoni example.comdomenin në /etc/hostsskedar
echo '127.0.0.1 example.com' >> /etc/hosts
Instaloni lidhjet
Për të testuar hostin tuaj virtual, ne kemi nevojë për shfletuesin e bazuar në tekst - elinks.
Për të instaluar elinks përdorni komandën e mëposhtme:
apt install elinks
Për të testuar example.comekzekutimin e hostit tuaj virtual:
elinks https://example.com
Për të dalë nga shfletuesi elinks shtypni q në tastierë dhe më pas Enter .
Testoni HTTP/2
Për të parë se çfarë protokollesh reklamon serveri, mënyra më e lehtë është të përdorni opensslpaketën e veglave.
openssl s_client -connect example.com:443 -nextprotoneg ''
Në daljen e kësaj komande duhet të shihni diçka si kjo:
CONNECTED(00000003)
Protocols advertised by server: h2, http/1.1
Për të parë HTTP/2 në veprim, mund të përdorni mjetet e zhvilluesit të shfletuesit. Protokolli HTTP/2 tregohet ose me h2ose me HTTP/2.0identifikues. Hapni panelin e rrjetit në mjetet e devijimit dhe rifreskoni faqen tuaj.
konkluzioni
Tani duhet të jeni të vetëdijshëm se sa "e lehtë" është të aktivizoni HTTP/2 në konfigurimin Nginx, por kjo nuk është e gjithë pjesa e pamjes së përgjithshme. Fillimisht duhet të mendoni për aktivizimin e TLS/SSL në serverin tuaj me paketa të forta shifrore dhe sigurohuni që nuk po përdorni shifra të listës së zezë . Vetëm pasi të keni aktivizuar TLS/SSL të fortë në serverin tuaj, mund të filloni të mendoni për aktivizimin e HTTP/2 .