De kiam Google komencis ami https-ejojn, pli amasa instalado de SSL-oj necesas, kiam eblas. Ĝenerale, aldone al pli da ĉikanado por serviloj, ni ankaŭ malpliiĝas en rapideco. Estas bona, tio HTTP2 la normo estis integrita en ĉiuj ĉefaj http-serviloj kaj retumiloj dum pli ol jaro kaj duono kaj ĝia subteno estas sufiĉe stabila. Bedaŭrinde debian stabila ne havas pakojn kiuj subtenas HTTP2 en la ĉefaj http-serviloj. La versioj kiujn ni bezonas por HTTP2 funkcii estas kiel sekvas:

Por mi la miksaĵo estas granda kaj dependas de apache aŭ nginx. Mi ankoraŭ ne ludis apache http2 de debian 8 тъй като не ми се е налагало но в backports репото го има така, че няма да е голям проблем. За nginx е вече го играхме няколко пъти. Като цяло стъпките са няколко и относително прости:

  1. Добавяме nginx официалното репов debian весията е 1.6.х 🙄
  2. Инсталираме си openssl от backports към момента е 1.0.2ктова ни трябва за ALPN подръжката за да може всичко да работи и да е бързичко
  3. инсталираме си devscriptsтук е момента да споделя че ще си билднем наш пакет защото официалният е компилиран с openssl 1.0.1t при който не работи ALPN и браузърите не му реагират добре и работи http2-то само ако го форсираш
  4. инкрементираме версията за да не правим hold циганията с пакетите а като има нова версия само да синкенм сорсовете

Нека да започнем стъпка по стъпка

Добавяне на nginx repo

deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

Добавяне на openssl 1.0.2k и dev библиотеката в противен случай ще си го билднем пак с 1.0.1t което не ни е целта

echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list

apt update && apt install libssl-dev -t jessie-backports

 

Nun restas aldoni la bibliotekojn necesajn por kompili nginx

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

Se vi laboris ĝuste, vi devas havi strukturon kiel

~/nginx-build # ll
total 1004
drwxr-xr-x 10 root root   4096 Feb 21 18:37 nginx-1.10.3
-rw-r--r--  1 root root 103508 Jan 31 17:59 nginx_1.10.3-1~jessie.debian.tar.xz
-rw-r--r--  1 root root   1495 Jan 31 17:59 nginx_1.10.3-1~jessie.dsc
-rw-r--r--  1 root root 911509 Jan 31 17:59 nginx_1.10.3.orig.tar.gz

Влизате в папта в която е разархивиран сорса на nginx в моят случай е и nginx-1.10.3 изпълнявате команда с която инкрементирате версията, Mi persone preferas aldoni 1 al la nuna konstruado

debchange --newversion 1.10.3-1

Post aldoni la ŝanĝon laŭ via elekto, vi povas daŭrigi al la efektiva kompilaĵo

debuild -us -uc -i -I -b -j6

Iom da klarigo pri la komanda agordo:

-ni -uc diru al la skripto ne “signoj” .dsc kaj .changes dosierojn. -mi kaj -Mi kaŭzi la skripton ignori dosierojn de versio-kontrolo. -B generi nur binaran pakon. -j samkiel kun multaj paralelaj procezoj por kompili 🙂

 

Unufoje la ĉi-supra procezo finiĝos, ni devas instali niajn novajn pakaĵojn. Se vi jam havas nginx instalitan, estas bona ideo malinstali ĝin

apt remove nginx nginx-*

Estas ankaŭ bona ideo rezervi la nginx-dosierujon en / ktp. Esence kiam ĝisdatigo de 1.6.5 al 1.10.3 Mi ne havis dramojn sed vi neniam scias. La novaj pakoj situas en la plej alta nivelo dosierujo kaj devas esti instalitaj kun komando kiel ekz:

dpkg -i ../*.deb

Se ĉio bonfartis, nur vi devas fari kuri nginx-procezon kaj agordi http2, kio ne plu estas la celo de ĉi tiu artikolo..

Mi spertis etan dramon kun la disko sur mia tekkomputilo. Post solvi la problemon per ĝisdatigo de apt-get, la sekva ekstreme malagrabla fino de la procezo brilis

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

Kiel kutime, la problemo estas ege evidenta /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386 ne povas esti legita ĝuste. La solvo estas tiel simpla, kiel la diagnozo de la problemo mem:

 rf -f /var/lib/apt/lists/*

Al la fino, la rezulto estas devigita sinkronigado de apt.

Mia plej ŝatata tekstredaktilo estas Geany. Ĝi estas tre minimalista ĈI TIE kiu subtenas grandegan aron da lingvoj – ŝelo, php, pitono, Ĉ … ktp. Ĝi havas aŭtomatan finadon kaj samtempe estas tre lerta. Mankas al mi iu alia agrabla okazo, sed nuntempe ĝi pli ol sufiĉas al mi. Mi komencis interretan kurson Python-Programado на SoftUni – por refreŝigi miajn sciojn kaj altgradigi ĝin, ĉar mi ne adekvate kontrolis tion, kio okazas kun python 3. La prelegantoj de la kurso rekomendas PyCharm kiel IDE por programado de piŝtoj, sed mi tute ne ŝatas ĝin, kompreneble mi uzas Geany por la ekzercoj.

Dum la prelegoj mi sentis min dolore 2 mankas

  1. Python-aŭtokompleto elvokas dokumentadon de funkcioj kaj metodoj
  2. neniu validaĵo por pep8 normo

La bona afero estas, ke Geany estas sufiĉe fleksebla por agordi kaj facile mankas per mankantoj.. Foje aldoni dokumenton pri pitono al nia IDE:

  • ni tiras la sekva skripto ie en nia PATRO ekzemple / usr / bin kaj ne forgesu fari ĝin plenumebla
  • redakti la dosieron ~ / .config / geany / filedefs / filetypes.python aldonante la sekvan linion en la sekcio pri agordoj konteksto_action_cmd = pydocw% s. Se nur aldoni la nomon de la duuma de la antaŭa paŝo. Ni rekomencas Geany se ĝi estas liberigita.
  • Ni jam havas kuntekston-agadon, kiu informos vin pri la funkcio. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Mi tre ŝatas ĉi tiun alproksimiĝon, ĉar mi estas tre ĝenita de la netbeansa alproksimiĝo.

Ĝis nun tiel bona. Poste mi vere volas validigi la kodon, kiun mi skribas – ĉu mi verkas ĝin laŭ ĝenerale akceptitaj normoj aŭ mi skribas ian malbelecon. Esence mi trovis ĝin denove lerniloj kiel aferoj okazas sed ĝi estas iom malaktuala – Geany havas ĉion enkonstruitan en ĝi, vi nur bezonas instali la pakon pep8. En Debian kapablo-akiri instali pep8 funkcias en la aliaj distroj, vi devas ekscii por vi mem kiel okazas la magio. En la menuo Konstrui, la dua butono (almenaŭ por mi) estas Lint post klaki ĝin, vi trovos kiom malbela kodo vi kreis 😀

Ekrankopio de 2016-01-11 20-42-21

Jen ĝenerala skizo pri kiel plibonigi vian Geany kun Python dum vi ankoraŭ rapidas sen fari vian CPU volas tiri la kuglon.

Pro iuj (ne tre klaraj kialoj al mi) Mi forgesis ĝisdatigi la postgresql daemon ĉe la distribua ĝisdatigo sur unu el miaj Debianaj serviloj. La Daemon Postgresql havas la belan funkcion de ne komenci uzi sian novan version (male al Mysql) ĝis ni estos konvinkitaj, ke la nova plene kongruas kun la lanĉo – ege utila en grandaj datumbazoj. La ĝisdatiga procezo mem estas limigita al la sekva 2 paŝoj:

  • pg_dropcluster
  • pg_upgradecluster

La pg daemon devas esti haltigita antaŭ ol vi povas forlasi la cluster!

pg_dropcluster 9.4 main

Ĉi tiu komando pasas rapide, tiam ni pasas al la esenca parto – la ĝisdatigo mem

pg_upgradecluster 9.1 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------------e-C
port   5433
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database xpqt...
Analyzing database xpqt...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

pg_dropcluster 9.1 main

Se ĉio iris glate, vi devus ricevi mesaĝon kiel tiu supre, kiu invitas vin forigi la malnovajn datumojn de pĝ.

pg_dropcluster 9.1 main

Fine de ĉi tiu aranĝo, vi povas denove komenci vian procezon. Por mi, la bazoj estas malgrandaj kaj bedaŭrinde mi ne povas taksi kiom da tempo daŭras la signifa ĝisdatigo..

La nova Debian Stabila estas fakto dum ĉirkaŭ unu semajno kaj miaj manoj komencis malsukcesigi mian virtualan maŝinon apud ĝi, sed mi ne havis tempon ĝis hodiaŭ. Ĉar mia tago komenciĝis frue, mi decidis dediĉi tempon al la ĝisdatigo. Промених сорс листа ми като промених wheezy на jessie

sed -i "s/wheezy/jessie/g" /etc/apt/sources.list && apt-get update

Ili tondris ĉi tie 2 speguloj:

  • MariaDB – de ĉi tiu spegulo jam ne bezonas Jessie inkluzivas version 10.0.6 en mi mem, kiun mi ne tre ŝatis. Post 5.5 micodedb kaj mysql ne tute kongruas, tial mi reiris al mysql nuntempe 5.5.42 – ĝi estas la defaŭlta en jessie
  • DotDeb – Mi uzis ĝin antaŭe por php55 ĉi tie ankaŭ estas malplena ĉar jessie venas 5.6.7-1

Post kiam mi perdis la kromajn spegulojn kaj turnis min de MariaDB al Mysql apt-get dist-upgrade iĝis pura, reboot kaj mi jam estis kun Debian 8.0. Mi malfermis mian ret-servilon kaj al mia surprizo ĝi funkciis ĉi tie, la historio estas longa – en kelkaj vortoj, mia Nginx estis plue kompilita el fonto kun aldonaj direktivoj. dpkg -l nginx-plena 1.2 mdaaa iu forgesis malhelpi, ne la pakaĵojn. Malŝalti kaj ĝisdatigi ĉion estas laŭ plano nginx rompis 😆 . Nginx funkcias prilaboritajn petojn kaj la php-fpm-procezo jam funkcias kaj runnignas, sed la php-kodo ne ekzekutas kaj ne kraĉas erarojn 🙄 MIA FAVORITE.

Post iom da serĉado de informoj pri la ŝanĝoj, mi trovis la sekvan pasejon

Problemoj pri agordo de Fastcgi ============================

nginx ekspedis modifitajn fastcgi_paramojn, kiu deklaris SCRIPT_FILENAME fastcgi_param. Ĉi tiu linio nun estis forigita. De nun ni ankaŭ sendas fastcgi.conf el la supreniranta magazino, kiu inkluzivas sane SCRIPT_FILENAME parametrovaloro.

Do, se vi uzas fastcgi_paramojn, vi povas provi ŝanĝi al fastcgi.conf aŭ permane agordi la koncernajn paramojn.

Bingo. Mi ŝanĝis la virtualajn gastigantojn por uzi fastcgi.conf anstataŭ fari malglatajn intervenojn kaj ĉio funkciis. Poste mi trafis rapidan diferencon por vidi la diferencon inter la 2 agordoj

diff /etc/nginx/fastcgi_params /etc/nginx/fastcgi.conf
1a2
> fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Kiu memorigis min, ke verŝi grandajn agordojn al virtualaj gastigantoj ne estas bonega ideo. Restas denove kompili mian Nginx per la aldonaĵoj, kiujn mi volas mod_sec + pagespeed sed ĉi tio povas atendi. Ĝi estas multe pli grava, ke mia regulo ripetiĝas se vi ne havas la recenzon el 3-a fontoj kaj kutimaj agadoj Debian ne rompas ĉe dist-ĝisdatigo!

https://www.youtube.com/watch?v = gEQCny6zNF0