Siitä lähtien google on alkanut rakastaa https-sivustoja, SSL: ien massamääräinen asennus vaaditaan mahdollisuuksien mukaan. Yleensä palvelimien häirinnän lisäksi myös nopeus heikkenee. Se on hyvä, että HTTP2 standardi on integroitu kaikkiin tärkeimpiin http-palvelimiin ja selaimiin yli puolitoista vuotta ja sen tuki on riittävän vakaa. Valitettavasti debian vakaalla ei ole HTTP2: ta tukevia paketteja pääasiallisissa http-palvelimissa. Tarvitsemme seuraavat versiot, jotta HTTP2 voi toimia::

Minulle sekoitus on iso ja riippuu apachesta tai nginxistä. En ole vielä pelannut debianin apacea http2 8 kuten minun ei tarvinnut, mutta takaporteissa repo on sellainen, se ei ole iso juttu. Sillä nginx on soittanut sitä jo useita kertoja. Vaiheet ovat yleensä useita ja suhteellisen yksinkertaisia:

  1. Lisäämme nginx-virallisen repon – Debian-versiossa versio on 1.6.x 🙄
  2. Openssl: n asentaminen takaisinporteista on tällä hetkellä 1.0.2k – tätä me tarvitsemme Kävi koulua ALPN ylläpito, jotta kaikki voi toimia ja olla nopea
  3. me asennamme devscriptit – Tässä on hetki jakaa, että rakennamme paketin, koska virallinen paketti on käännetty openssl 1.0.1t: lle, jossa ALPN ei toimi ja selaimet eivät vastaa hyvin ja http2 toimii vain, jos pakotat sen
  4. lisäämme versiota, jotta mustalaisia ​​ei pidetä pakettien kanssa ja kun on uusi versio, vain lähteiden synkronointiin

Aloitetaan askel askeleelta

Lisää nginx-repo

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

Lisäämällä openssl 1.0.2k ja dev-kirjasto, muuten rakennamme sen uudelleen 1.0.1t: llä, mikä ei ole tavoitteemme

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

 

Nyt on vielä lisättävä kirjastoja, joita tarvitaan nginx: n kääntämiseen

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

Jos olet toiminut oikein, sinulla on oltava rakenne kuten

~/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 изпълнявате команда с която инкрементирате версията, Pidän henkilökohtaisesti mieluummin lisäämistä 1 nykyiseen rakennukseen

debchange --newversion 1.10.3-1

Kun olet lisännyt valitsemasi muutoslokin, voit jatkaa todelliseen kokoamiseen

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

Pieni selitys komentojen kokoonpanosta:

-meille -uc käske käsikirjoituksen olla “merkkejä” .dsc- ja .changes-tiedostot. -minä ja -minä saa skripti jättämään versionhallintotiedostot huomiotta. -B vain binaaripaketin luomiseksi. -j kuten tekemällä kuinka monta rinnakkaista prosessia käännetään 🙂

 

Kun yllä oleva prosessi on valmis, meidän pitäisi asentaa uudet paketit. Jos nginx on jo asennettuna, on hyvä idea poistaa se

apt remove nginx nginx-*

On myös hyvä idea varmuuskopioida nginx-kansio hakemistoon / etc. Pohjimmiltaan päivitettäessä 1.6.5 että 1.10.3 Minulla ei ollut draamoja, mutta et koskaan tiedä. Uudet pakkaukset sijaitsevat ylimmän tason kansiossa, ja ne tulisi asentaa esimerkiksi komennolla:

dpkg -i ../*.deb

Jos kaikki sujui sujuvasti, sinun on vain suoritettava nginx-prosessi ja määritettävä http2, mikä ei ole enää tämän artikkelin tavoite..

Koin pienen draaman kannettavan tietokoneen levystä. Kun olet korjannut ongelman apt-get-päivityksellä, seuraava erittäin epämiellyttävä prosessin loppu loisti

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.

Kuten tavallista, ongelma on erittäin ilmeinen /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386 ei voi lukea oikein. Korjaus on yhtä yksinkertainen kuin itse ongelman diagnosointi:

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

Loppujen lopuksi tulos on apt: n pakko synkronointi.

Suosikki tekstieditori on Geany. Se on hyvin minimalistinen TÄSSÄ joka tukee suurta kielivalikoimaa – kuori, php, pytonkäärme, C … jne. Siinä on automaattinen viimeistely ja samalla erittäin ketterä. Siltä puuttuu jokin muu miellyttävä tilaisuus, mutta tällä hetkellä se on enemmän kuin tarpeeksi minulle. Aloitin verkkokurssin Python-ohjelmointi на SoftUni – päivittää tietoni ja päivittää sitä, koska en ole seurannut riittävästi pythonin kanssa tapahtuvaa 3. Kurssin luennoitsijat suosittelevat PyCharm IDE: nä pyton-ohjelmoinnille, mutta en pidä siitä, käytän tietysti harjoituksiin Geanyä.

Luentojen aikana tunsin tuskallista 2 puuttuu

  1. python-automaattinen täydennys hengittää toiminnan ja menetelmien dokumentoinnista
  2. ei validointia pep8-standardi

Hyvä asia on, että Geany on riittävän joustava konfiguroidakseen ja sitä voidaan helposti täydentää puuttuvilla.. Joskus lisää python-dokumentaatio IDE: hen:

  • me vedämme seuraava komentosarja jossain PATH-kentässä esimerkiksi / usr / bin ja älä unohda tehdä siitä suoritettavaa
  • muokkaa tiedostoa ~ / .config / geany / filedefs / filetypes.python lisäämällä seuraava rivi asetusosaan konteksti_toiminta_cmd = pydocw% s. Lisää vain binaarin nimi edellisestä vaiheesta. Käynnistämme Geanyn uudelleen, jos se vapautetaan.
  • Meillä on jo asiayhteystoiminto, joka antaa sinulle tietoja toiminnosta. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Pidän tästä lähestymistavasta paljon, koska minua häiritsee hyvin netbeans-lähestymistapa.

Toistaiseksi niin hyvä. Sitten todella haluan saada vahvistuksen kirjoittamalleni koodille – kirjoitanko sen yleisesti hyväksyttyjen standardien mukaisesti vai kirjoitanko jotain rumuutta. Pohjimmiltaan löysin sen uudelleen Oppaat miten asiat tapahtuvat, mutta se on vähän vanhentunut – Geany sisältää kaiken sisäänrakennetun, sinun on vain asennettava pep8-paketti. Debianissa apt-get install pep8 toimii muissa distrossa, sinun on selvitettävä itsellesi, kuinka taika tapahtuu. Rakenna-valikon toinen painike (ainakin minulle) on Lint napsauttamalla sitä, kuinka ruma koodi olet luonut 😀

Näyttökuva 2016-01-11 20-42-21

Tässä on yleiskuvaus siitä, kuinka saada Geanysi toimimaan paremmin Pythonin kanssa samalla, kun se on silti nopea tekemättä prosessoristasi halua vetää luotia.

Joidenkin takia (ei kovin selkeät syyt minulle) Unohdin päivittää postgresql-demonin jakelupäivityksessä yhdellä Debian-palvelimellani. Postgresql-demonilla on hieno ominaisuus, että se ei aio käyttää uutta versiota (toisin kuin Mysql) kunnes olemme vakuuttuneita, että uusi on täysin yhteensopiva lanseerauksen kanssa – erittäin hyödyllinen suurissa tietokannoissa. Itse päivitysprosessi on rajoitettu seuraavaan 2 askeleet:

  • pg_dropcluster
  • pg_upgradecluster

Pg-demoni on lopetettava, ennen kuin voit pudottaa klusterin!

pg_dropcluster 9.4 main

Tämä komento ohitetaan nopeasti, sitten siirrymme olennaiseen osaan – itse päivityksen

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

Jos kaikki sujui hyvin, sinun pitäisi saada yllä olevan kaltainen viesti, joka kutsuu sinut eroon vanhoista tiedoista sivulta.

pg_dropcluster 9.1 main

Tämän tarpan lopussa voit nyt aloittaa prosessin uudelleen. Minulle perusta on pieni ja en valitettavasti voi arvioida kuinka kauan merkittävä päivitys vie..

Uusi Debian-vakaa on ollut tosiasia noin viikon ajan ja käteni kutinavat päivittääkseen virtuaalikoneeni siihen, mutta minulla ei ollut aikaa tähän päivään mennessä. Koska päiväni alkoi aikaisin, päätin viettää aikaa päivitykseen. Промених сорс листа ми като промених wheezy на jessie

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

He ukkosivat täällä 2 peilit:

  • MariaDB – Tästä peilistä ei enää tarvitse Jessie sisältää version 10.0.6 itsessäni, josta en pitänyt kovinkaan. Jälkeen 5.5 michetodb ja mysql eivät ole aivan yhteensopivia, minkä vuoksi käännyin tällä hetkellä takaisin mysql: iin 5.5.42 – se on jessien oletusasetus
  • DotDeb – Käytin sitä aikaisemmin php55: lle, täällä on myös tarpeetonta, koska jessie mukana 5.6.7-1

Kun hävisin tarpeettomat peilit ja käännyin MariaDB: stä Mysql: iin apt-get dist-upgrade päivitettiin, Käynnistä uudelleen ja olin jo Debianin kanssa 8.0. Avasin web-palvelimeni ja yllätyksekseni se toimi täällä, tarina on pitkä – Muutamassa sanassa Nginx on koottu edelleen lähteestä lisädirektiiveillä. dpkg -l nginx-full 1.2 mdaaa joku unohti pidättää paketit. Pysäytä ja päivitä kaikki suunnitellusti nginx hajosi 😆 . Nginx toimii pyyntöjen käsittelyssä ja php-fpm-prosessi on käynnissä ja käynnissä, mutta php-koodia ei suoriteta eikä sylkeä virheitä 🙄 MINUN FAVORITE.

Tutkittuaan tietoja muutoksista löysin seuraavan kappaleen

Fastcgi-määritysongelmat ============================

nginx lähetti muokatun fastcgi_params, joka julisti SCRIPT_FILENAME fastcgi_param. Tämä rivi on nyt poistettu. Tästä eteenpäin toimitamme myös fastcgi.conf-tiedostoa ylävirran loppusijoitustilasta, joka sisältää terveen SCRIPT_FILENAME-parametriarvon.

Niin, jos käytät fastcgi_params, Voit yrittää siirtyä fastcgi.conf-tiedostoon tai asettaa tarvittavat parametrit manuaalisesti.

Bingo. Vaihdin virtuaalisia isäntiä käyttämään fastcgi.conf: ää sen sijaan, että suorittaisin karkeita interventioita ja kaikki toimi. Sitten osuin nopeasti diff nähdäksesi ero 2 kokoonpanoissa

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

Mikä muistutti minua siitä, että suurten kokoonpanojen kaataminen virtuaalisiin isäntiin ei ole hieno idea. Jäljellä on, että Nginx käännetään uudelleen niiden lisäosien kanssa, joita haluan mod_sec + sivunopeutta, mutta tämä voi odottaa. Se on paljon tärkeämpää, että sääntöni toistuu, jos sinulla ei ole arvostelua kolmansista lähteistä ja mukautettuja esityksiä Debian ei riko dist-päivityksen yhteydessä!

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