Sedert google begin hou van https-webwerwe, waar moontlik is daar meer massa-installasie van SSL's nodig. In die algemeen, benewens meer teistering vir bedieners, het ons ook 'n agteruitgang in spoed. Dis goed, daardie HTTP2 die standaard is al meer as 'n half jaar by alle belangrike http-bedieners en blaaiers geïntegreer en die ondersteuning daarvan is stabiel genoeg. Ongelukkig het debian stabiel nie pakkette wat HTTP2 ondersteun in die belangrikste http-bedieners nie. Die weergawes wat HTTP2 benodig, is soos volg:

Vir my is die mengsel groot en hang dit af van apache of nginx. Ek het nog nie gespeel met debian se apache http2 nie 8 soos ek nie hoef nie, maar in backports is die repo so, dit sal nie 'n groot saak wees nie. Vir nginx het dit al 'n paar keer gespeel. Oor die algemeen is die stappe verskeie en relatief eenvoudig:

  1. Ons voeg die nginx-amptelike repo by – in debian is die weergawe 1.6.x 🙄
  2. Die installering van openssl vanaf backports is tans 1.0.2k – dit is waarvoor ons nodig het ALPN onderhoud sodat alles kan werk en vinnig kan wees
  3. ons installeer ons skripsies – hier is die oomblik om te deel dat ons ons pakket sal bou, want die amptelike pakket is saamgestel met openssl 1.0.1t waar ALPN nie werk nie en die blaaiers nie goed reageer nie en die http2 slegs werk as u dit forseer
  4. ons verhoog die weergawe om nie die sigeuners met die pakkies te hou nie en as daar 'n nuwe weergawe is om slegs bronne te sinkroniseer

Laat ons stap vir stap begin

Voeg nginx repo by

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

Deur openssl 1.0.2k en die dev-biblioteek by te voeg, anders bou ons dit weer met 1.0.1t, wat nie ons doel is nie

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

 

Dit bly nou by om die biblioteke by te voeg wat nodig is om nginx saam te stel

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

As u korrek gewerk het, moet u 'n struktuur hê soos

~/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 изпълнявате команда с която инкрементирате версията, Ek persoonlik verkies om by te voeg 1 tot die huidige gebou

debchange --newversion 1.10.3-1

Nadat u die veranderlike lys van u keuse bygevoeg het, kan u voortgaan met die werklike samestelling

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

'N Klein uiteensetting van die opdragkonfigurasie:

-ons -uc vertel die skrif om nie “tekens” .dsc en .changes lêers. -i en -Ek veroorsaak dat die skrif weergawelêers ignoreer. -B om slegs 'n binêre pakket te genereer. -j soos met hoeveel parallelle prosesse to saamgestel moet word

 

Sodra bogenoemde proses voltooi is, moet ons ons nuwe pakkette installeer. As u reeds nginx geïnstalleer het, is dit 'n goeie idee om dit te verwyder

apt remove nginx nginx-*

Dit is ook 'n goeie idee om die nginx-lêergids in / ens te rugsteun. Basies by die opgradering van 1.6.5 om 1.10.3 Ek het geen dramas gehad nie, maar jy weet nooit. Die nuwe pakkette is in die boonste vouer geleë en moet geïnstalleer word met 'n opdrag soos:

dpkg -i ../*.deb

As alles glad verloop, hoef u net die nginx-proses uit te voer en http2 op te stel, wat nie meer die doel van hierdie artikel is nie..

Ek is deur 'n klein drama met my Laptop skyf. Na afloop van die probleem is vasgestel in die vas-kry Update, die volgende uiterste nie aangename einde van die proses was

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.

Soos gewoonlik, die probleem is uiters voor die hand liggend/var/lib/apt/lists/jarean.ipacct. com_debian_dists_sid_contrib_binary-i386 kan nie korrek gelees word nie. Die oplossing is net so elementêre as die diagnose van die probleem self:

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

Op die ou end, die gevolg is gedwing sinchronisasie van 'n gepaste.

My gunsteling-teksredigeerder is Geany. Dit is baie minimalistiese IDE wat ondersteun 'n groot versameling van tale – Dop, Php, Python, C … Ens. Dit het outomaties voltooi en terselfdertyd is dit hellilik nitse.. Hy het 'n paar mooi geleentheid en nog 'n mooi geleentheid, maar op die oomblik is dit meer as genoeg vir my.. Ek het begin om die aanlyn kursus Python programmering op SoftUni – om my kennis te verfris en te bou op hulle as ek nie voldoende opgespoor wat gebeur met Python 3. Die sprekers van die kursus beveel aan Pysjarme as IDE vir pyton programmering, maar ek is ver van gemaklik, natuurlik gebruik ek Geenige vir my oefeninge.

Tydens die lesings het ek pynlik gevoel 2 Gapings

  1. Python Outovoltooi uied van die dokumentasie van funksies en metodes
  2. Daar is geen validering vir pep8 standaard

Die goeie ding is dat Geenigsins buigsaam genoeg op die opset en kan maklik aangevul word deur ontbrekende kinders. Let's Voeg Python-dokumentasie by om ons IDE:

  • Ons trek mekaar die volgende skrip iewers in ons pad byvoorbeeld/usr/BIN as ons nie vergeet om dit uitvoerbare maak
  • wysig die lêer ~/.vertroug/geany/lêerdefs/lêersets.Python deur die volgende reël in die stellings afdeling context_action_cmd = pydow% s. As dit bestaan, voeg slegs die binar naam van die vorige stap. Ons herlaai Geenige as dit vrygestel.
  • Ons het reeds 'n konteks-aksie wat jou inligting oor die funksie sal kry. Ek het my kortpad bygevoeg om my meer gemaklik te laat voel as ek nie enige funksionaliteit verstaan nie. Leach me hierdie benadering behaag my werklik omdat dit my werklik irriteer-benadering.

So vêr so goed. Daarna wou ek graag bekragtiging van die kode wat ek skryf, hê. – of ek dit skryf volgens algemeen aanvaarde standaarde of skryf enige gemeenheid. Basies het ek weer gevind Twitter hoe dinge gebeur, maar dit is 'n bietjie verouderd – Geany het alles gebou op sigself hoef te installeer hom pep8 pakket. In Debian-Get installeer pep8 werk in die ander DIST van die werk self wat jy nodig het om te ontdek hoe magie gebeur. In die bou-kieslys, die tweede knoppie (ten minste met my) is pluis nadat jy dit geklik het, sal jy uitvind hoe lelike kode jy geskep het 😀

Skermkiekie van 2016-01-11 20-42-21

Dit is basies hoe om jou Geenige werk beter met Python te maak terwyl jy voortgaan om vinnig te wees sonder om jou verwerker wil jou koeël te trek.

As gevolg van sommige (nie baie duidelike redes vir my nie) Ek het vergeet om die postgresql daemon op te gradeer in die verspreidingsopgradering op een van my Debian-bedieners. Die Postgresql-demoon het die goeie funksie dat hy nie sy nuwe weergawe begin gebruik nie (anders as Mysql) totdat ons oortuig is, dat die nuwe een volledig versoenbaar is met die bekendstelling – uiters nuttig in groot databasisse. Die opdateringsproses self is beperk tot die volgende 2 Stappe:

  • pg_dropcluster
  • pg_upgradecluster

Die pg-demoon moet gestop word voordat u die groep kan laat val!

pg_dropcluster 9.4 main

Hierdie opdrag slaag vinnig, dan gaan ons oor na die wesenlike deel – die opgradering self

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

As alles glad verloop, moet u 'n boodskap ontvang soos hierbo wat u uitnooi om van die ou data van pg. Ontslae te raak.

pg_dropcluster 9.1 main

Aan die einde van hierdie tarpan kan u nou weer met u proses begin. Vir my is die basisse klein en ongelukkig kan ek nie skat hoe lank die aansienlike opgradering duur nie..

Die nuwe een Debian-stal Dit is al ongeveer 'n week lank en my hande het geklink om my virtuele masjien daar op te gradeer, maar ek het tot vandag toe nog nie tyd gehad nie. Sedert my dag vroeg begin het, het ek besluit om tyd aan die opgradering te wy. Промених сорс листа ми като промених wheezy на jessie

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

Hulle het hier gedonder 2 spieëls:

  • MariaDB – uit hierdie spieël hoef Jessie nie meer 'n weergawe nie 10.0.6 in myself waarvan ek nie baie gehou het nie. na 5.5 micodedb en mysql is nie heeltemal versoenbaar nie, daarom het ek op die oomblik teruggekeer na mysql 5.5.42 – dit is die standaard in jessie
  • DotDeb – ek het dit al voorheen gebruik vir php55, hier is ook oortollig, want jessie kom met 5.6.7-1

Nadat ek die onnodige spieëls verloor het en van MariaDB na Mysql oorgegaan het, het die opgradering van my skoon geword, herlaai en ek was al by Debian 8.0. Ek het my webbediener geopen en tot my verbasing het dit hier gewerk, die verhaal is lank – In enkele woorde, my Nginx is verder saamgestel uit die bron met aanvullende riglyne. dpkg -l nginx-vol 1.2 mdaaa iemand het vergeet om die pakkette te ontkoppel. Onthou en opgradeer alles volgens plan nginx gebreek 😆 . Nginx werk met die verwerking van versoeke en die php-fpm-proses is aan die gang en pas, maar die php-kode voer nie uit nie en spoeg nie foute nie 🙄 MY Gunsteling.

Nadat ek inligting oor die veranderinge gesoek het, het ek die volgende gedeelte gevind

Probleme met Fastcgi-opstelling ============================

nginx het 'n gewysigde fastcgi_params gestuur, wat SCRIPT_FILENAME vinnigcgi_param verklaar het. Hierdie lyn is nou verwyder. Van nou af stuur ons ook fastcgi.conf vanaf die stroomop-bewaarplek, wat 'n verstandige SCRIPT_FILENAME-parameterwaarde bevat.

so, as u fastcgi_params gebruik, u kan probeer om oor te skakel na fastcgi.conf of die betrokke params handmatig in te stel.

bingo. Ek het die virtuele leërskare verander om fastcgi.conf te gebruik in plaas van rowwe ingrypings en alles werk. Toe slaan ek 'n vinnige verskil om die verskil tussen die twee konfigs te sien

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

Wat my daaraan herinner dat die stort van groot konfigurasies in virtuele leërskare nie 'n aaklige idee is nie. Dit bly oor om my Nginx weer saam te stel met die byvoegings wat ek mod_sec wil hê + bladsye, maar dit kan wag. Dit is baie belangriker, dat my reël herhaal word as u nie die resensie uit 3de bronne en aangepaste optredes het nie, Debian breek nie by dist-upgrade nie!

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