Seit Google https-Websites liebt, Wenn möglich, ist eine Masseninstallation von SSLs erforderlich. Im Allgemeinen haben wir neben mehr Belästigung für Server auch eine Verschlechterung der Geschwindigkeit. Das ist gut, Das HTTP2 Der Standard ist seit über anderthalb Jahren in allen wichtigen http-Servern und Browsern integriert und seine Unterstützung ist stabil genug. Leider hat Debian Stable keine Pakete, die HTTP2 auf den wichtigsten http-Servern unterstützen. Die Versionen, die wir benötigen, damit HTTP2 funktioniert, sind wie folgt:

Für mich ist die Mischung groß und hängt von Apache oder Nginx ab. Ich habe Debians Apache http2 noch nicht gespielt 8 wie ich nicht musste, aber in Backports ist das Repo so, das wird keine große Sache sein. Denn Nginx hat es schon mehrmals gespielt. Im Allgemeinen sind die Schritte mehrere und relativ einfach:

  1. Wir fügen das offizielle Nginx-Repo hinzu – in debian ist die version 1.6.x 🙄
  2. Die Installation von openssl von Backports ist derzeit 1.0.2k – Dafür brauchen wir ALPN Wartung, damit alles funktionieren und schnell gehen kann
  3. Wir installieren unsere Devscripts – Hier ist der Moment, um mitzuteilen, dass wir unser Paket erstellen werden, da das offizielle Paket mit openssl 1.0.1t kompiliert wird, wobei ALPN nicht funktioniert und die Browser nicht gut reagieren und http2 nur funktioniert, wenn Sie es erzwingen
  4. Wir erhöhen die Version, um die Zigeuner nicht mit den Paketen zu halten, und wenn es eine neue Version gibt, nur um Quellen zu synchronisieren

Beginnen wir Schritt für Schritt

Nginx Repo hinzufügen

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

Wenn Sie openssl 1.0.2k und die Entwicklungsbibliothek hinzufügen, werden wir sie andernfalls erneut mit 1.0.1t erstellen, was nicht unser Ziel ist

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

 

Jetzt müssen noch die Bibliotheken hinzugefügt werden, die zum Kompilieren von Nginx benötigt werden

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

Wenn Sie richtig gearbeitet haben, müssen Sie eine Struktur wie haben

~/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 изпълнявате команда с която инкрементирате версията, Ich persönlich ziehe es vor hinzuzufügen 1 zum aktuellen Build

debchange --newversion 1.10.3-1

Nachdem Sie das Änderungsprotokoll Ihrer Wahl hinzugefügt haben, können Sie mit der eigentlichen Kompilierung fortfahren

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

Eine kleine Erklärung der Befehlskonfiguration:

-uns -uc Sagen Sie dem Skript, dass dies nicht der Fall ist “Zeichen” .dsc- und .changes-Dateien. -ich und -ich Das Skript ignoriert Versionskontrolldateien. -B. nur ein Binärpaket zu generieren. -j wie in make mit wie vielen parallelen Prozessen zu kompilieren 🙂

 

Sobald der oben beschriebene Vorgang abgeschlossen ist, sollten wir unsere neuen Pakete installieren. Ако имате вече инсталиран nginx е добре да го деинсталирате

apt remove nginx nginx-*

Също не лоша идея е да си направите бекъп на nginx папката в /etc. По принцип при ъпгрейд от 1.6.5 към 1.10.3 нямах драми но никога не се знае. Die neuen Packs befinden sich im Ordner der obersten Ebene und sollten mit einem Befehl wie installiert werden:

dpkg -i ../*.deb

Ако всичко е минало гладко ви остава само да си пуснете nginx процеса и да си се конфигурира http2 което вече не е цел на тази статия.

Mit dem eleganten können wir problemlos alle MySQL-Anfragen eines bestimmten Benutzers beenden:

select concat('KILL ',id,';') from information_schema.processlist where user='user123';

Wir ersetzen user123 durch den gewünschten Benutzer und führen MySQL aus. Alles ist in Ordnung

Der neue Debian Stable ist seit ungefähr einer Woche eine Tatsache und meine Hände wollten unbedingt meine virtuelle Version darauf aufrüsten, aber ich hatte bis heute keine Zeit. Da mein Tag früh begann, beschloss ich, Zeit für das Upgrade aufzuwenden. Промених сорс листа ми като промених wheezy на jessie

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

Sie donnerten hier 2 Spiegel:

  • MariaDB – Von diesem Spiegel braucht Jessie keine Version mehr 10.0.6 in mir selbst, was mir nicht sehr gut gefallen hat. Nach 5.5 micodedb und mysql sind nicht vollständig kompatibel, weshalb ich mich im Moment wieder mysql zugewandt habe 5.5.42 – Es ist die Standardeinstellung in Jessie
  • DotDeb – Ich habe es schon einmal für PH55 verwendet. Hier ist es auch überflüssig, weil Jessie mitkommt 5.6.7-1

Nachdem ich die unnötigen Spiegel verloren und von MariaDB zu MySQL gewechselt war, ging apt-get dist-upgrade sauber, Neustart und ich war schon bei Debian 8.0. Ich habe meinen Webserver geöffnet und zu meiner Überraschung hat es hier funktioniert, die Geschichte ist lang – In wenigen Worten, mein Nginx wurde mit zusätzlichen Anweisungen aus dem Quellcode weiter kompiliert. dpkg -l nginx-voll 1.2 mdaaa jemand hat vergessen, die Pakete zurückzuhalten - nicht. Unhold und Upgrade alles ist nach Plan Nginx kaputt 😆 . Nginx verarbeitet Anfragen und der PHP-Fpm-Prozess ist aktiv, aber der PHP-Code wird nicht ausgeführt und spuckt keine Fehler aus. 🙄 MEIN LIEBLING.

Nachdem ich nach Informationen über die Änderungen gesucht hatte, fand ich die folgende Passage

Fastcgi-Konfigurationsprobleme ============================

nginx hat ein modifiziertes fastcgi_params ausgeliefert, welches SCRIPT_FILENAME fastcgi_param deklarierte. Diese Zeile wurde jetzt entfernt. Ab sofort versenden wir auch fastcgi.conf aus dem Upstream-Repository, Dies beinhaltet einen vernünftigen SCRIPT_FILENAME-Parameterwert.

Damit, wenn Sie fastcgi_params verwenden, Sie können versuchen, zu fastcgi.conf zu wechseln oder die entsprechenden Parameter manuell festzulegen.

Bingo. Ich habe die virtuellen Hosts so geändert, dass sie fastcgi.conf verwenden, anstatt grobe Eingriffe vorzunehmen, und alles hat funktioniert. Dann drückte ich einen schnellen Diff, um den Unterschied zwischen den beiden Konfigurationen zu sehen

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

Was mich daran erinnerte, dass es keine coole Idee ist, große Konfigurationen in virtuelle Hosts zu integrieren. Es bleibt, mein Nginx erneut mit den Add-Ons zu kompilieren, die ich mod_sec möchte + Seitengeschwindigkeit, aber das kann warten. Es ist viel wichtiger, dass meine Regel wiederholt wird, wenn Sie nicht die Überprüfung aus 3. Quellen und benutzerdefinierten Leistungen haben Debian bricht nicht bei dist-Upgrade!

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

Jeder, der sich professionell mit Webhosting befasst, kennt die Bedrohung durch infizierte Benutzer mit Malware, Web-Shells usw.. Im allgemeinen Fall wird es verwendet Maledet ein nicht schlechtes Skript. Es zeichnet sich aus durch 3 Dinge

  1. Es ist furchtbar langsam
  2. Es ist furchtbar langsam und wenn Sie es in den Überwachungsmodus versetzen, wird es Ihren Server durcheinander bringen
  3. Unterstützt eine eigene Datenbank mit MD5 / Hex-Definitionen für fehlerhaften Code.

Es ist die letzte Funktion, die es nützlich macht, Sie können unter anderem Dateien senden, die bisher nicht erkannt wurden und zu einem späteren Zeitpunkt in die Datenbanken gelangen.. Wie ich in Punkt geteilt habe 1 und 2 seine Geschwindigkeit ist erschreckend niedrig – Bei geringer Maschinenlast wurden in etwa anderthalb Stunden 70.000 Dateien gescannt. Aus diesem Grund half ich meinem guten Freund ShadowX malmon – Eine Alternative zu in Python geschriebenem Maledet mit etwas mehr Flexibilität. Leider aus Zeitmangel (hauptsächlich aber nicht nur) Wir haben das Projekt nicht abgeschlossen, das ist im Moment nicht sehr brauchbar – Es gibt viele Fehler, die behoben werden müssen. In den letzten Tagen hatte ich Probleme mit mit CryptoPHP infizierten Clients, die riesige public_html-Dateien mit mehr als 60.000 Benutzer-Inods hatten. Da mussten insgesamt über 200k Dateien gescannt werden, was ungefähr dauern würde 5+ Stunden entschied ich mich, die Konfiguration von Maledet zu optimieren, um die zu scannenden Dateien auf eine angemessene Anzahl und Zeit zu reduzieren. Als ich die Conf aufnahm, bemerkte ich die folgenden Zeilen

# Attempt to detect the presence of ClamAV clamscan binary
# and use as default scanner engine; up to four times faster
# scan performance and superior hex analysis. This option
# only uses ClamAV as the scanner engine, LMD signatures
# are still the basis for detecting threats.
# [ 0 = disabled, 1 = enabled; enabled by default ]
clamav_scan=1

Interessant… Anscheinend gibt es eine Möglichkeit zu nutzen ClamAV – Das unterscheidet sich auch nicht in seiner hohen Geschwindigkeit, aber warum nicht versuchen?. Ich habe es schnell installiert

/scripts/update_local_rpm_versions --edit target_settings.clamav installed

/scripts/check_cpanel_rpms --fix --targets=clamav

Ich führe das Maledet in einem kleinen Ordner aus – Ich sehe keinen Unterschied in Geschwindigkeit und Verhalten – er benutzte seinen Perl-Scanner anstelle des Clamav. Nach einem kurzen Stöbern in der Quelle von Maledet fand ich die folgenden Zeilen

 clamscan=`which clamscan 2> /dev/null`
 if [ -f "$clamscan" ] && [ "$clamav_scan" == "1" ]; then
        eout "{scan} found ClamAV clamscan binary, using as scanner engine..." 1
    for hit in `$clamscan -d $inspath/sigs/rfxn.ndb -d $inspath/sigs/rfxn.hdb $clamav_db -r --infected --no-summary -f $find_results 2> /dev/null | tr -d ':' | sed 's/.UNOFFICIAL//' | awk '{print$2":"$1}'`; do

Hmmm, ich habe eins gemacht welcher Clamscan und zu meiner großen Überraschung stellte ich fest, dass Clamav überhaupt nicht im PFAD ist, aber der dumme Cpanel ließ es nur in / usr / local / cpanel / 3rdparty / bin /, von wo aus er seine Binärdateien verwendet. Eine schnelle Lösung löste das Problem:

ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/bin/clamscan

Beim erneuten Scannen meldet maldet dies bereits

{scan} found ClamAV clamscan binary, using as scanner engine...

Nachdem ClamAV maldet bereits verwendet wurde, wird der Scan abgeschlossen 3-4-5 mal schneller als vorher. Der Test zeigte – 70k inod-a rieb sie ungefähr 25 min was ist ungefähr 3 mal anderthalb schneller als zuvor.

Bevor ich mit einem anderen zufälligen Hass anfange 50 dünnes Betriebssystem meine ich, dass ich es jeden Tag verabreichen muss und ich weiß es aus erster Hand ziemlich gut. Heute habe ich mir die Zeit genommen, die neue magische, ungehörte und unsichtbare Funktion für ein zerstörerisches Upgrade zu testen (Pseudo-) 😀 . Das erste, was mich erstaunt hat, war, dass RedHat in seiner unendlichen Weisheit beschlossen hat, die Unterstützung der x86-Architektur einzustellen 🙄 . Напълно съм наясно че сме 2014-та година и сървърни процесори с 32 Bit-Anweisungen fehlen seit langem. Мда ама какво правят потребителите на малки VPS-и – x64 Pfote mehr Rahmen, Wenn Sie eine dünne virtuelle Maschine mit 512 MB - 1 GB RAM haben, werden Sie um jedes Megabyte kämpfen und nicht verschwenden 20-30% davon nur auf die großen Anweisungen zu verwenden. Ich habe es vermasselt, weil ich x86 CentOS installiert und ein x64 gezogen habe. Ich sah sofort einen Unterschied in den ISOs – ~ 100 MB при minimal 6.5. Ich fluchte noch einmal. Ich habe meine virtuelle Maschine neu installiert und festgestellt, wie gut RedHat ihre Arbeit gemacht hat – Ich habe / var und / usr exportiert, um LVM-Partitionen zu trennen 😈 . Nach der Installation habe ich alle Pakete aktualisiert und Apache installiert, php, mysql и binden – Es war interessant, ob sie die Dienste einschalten würden. Als guter Schüler öffnete ich den CentOS-Leitfaden für das Update und folgte ihm Schritt für Schritt.. Als ich an dem Punkt ankam, an dem das eigentliche Upgrade begann, unterbrach mich dieser Puma, че имам критичен проблем 🙄 . Ich überprüfe die detaillierte Ausgabe – mdaaaa / usr kann nicht auf einer separaten Partition sein 😆 Ich wusste, dass ich von Jim Whitehurst und seiner Gesellschaft nicht enttäuscht sein werde. Außer “das Extreme” Problem Es gab viele Nachrichten über nicht signierte Pakete, Beschlagnahmungsdateien, die nicht übereinstimmen und so weiter. WTF Ich hatte nicht einmal die 3. Repositorys verwendet, alles von ihren Spiegeln, die ich heruntergenommen hatte. Ich hatte keine Einstellungen vorgenommen, nur eine einfache Installation. Alles war bereits klar, also habe ich das Upgrade kurzerhand erzwungen. Ich habe fleißig wieder neu gestartet, als mich das Skript schließlich dazu aufforderte und alles aufgrund der / usr-Partition endete. Ich war zu faul, dass ich versuche, es zu beheben, Jedenfalls war alles nur für wissenschaftliche Zwecke, es gibt momentan keine Möglichkeit, einen Produktserver zu aktualisieren. Ich habe meine virtuelle Maschine neu installiert und diesmal alles hineingeschoben 1 Titel. Ich habe auch eine Lektion gelernt, Keine Updates, keine zusätzlichen Dienste, nach der Installation direktes Upgrade. Im letzten Schritt tauchte der nervige Dialog, den er mir erzählte, wieder auf, dass ich ziemlich hohe Probleme habe – ungültige Pakete, конфизи и прочие но може да продължи. Ich wusste am Anfang, dass sie die Dinge nicht richtig machten. Ich startete erneut und wartete – Oh, was für ein Wunder, dass das Upgrade erfolgreich beendet wurde. Und alles hat funktioniert oder zumindest der Systemstart und ich habe nie versucht, zusätzliche Pakete zu installieren, aber der Stoppbefehl hing – huh musste noch einen bug haben 💡 . Nach all dieser Aufregung entschied ich mich, Centos sauber zu installieren 7 Mal sehen, ob es für / boot Partition in LVM knurren wird – 6.5 erlaubt keine solche Kühnheit. Ich habe meine ISO gestartet und war vom Installateur gelinde gesagt schockiert – alles war äußerst unpraktisch “aufgeräumt”, völlig unlogisch, um schön zu sein. Nach einigem Kampf gelang es mir mit dem geschätzten Ziel und Aha zu installieren und zu explodieren, dass ich meinen / boot aus dem LVM nehmen muss 👿 Das ist extrem nicht ernst und nervig, Wenn Sie aus irgendeinem Grund vergessen, die Größe der Boot-Partition von 200 MB zu erhöhen und alte Kernel zu akkumulieren, was passiert.

Im Allgemeinen habe ich nichts erwartet und bin immer noch von CentOS enttäuscht.