Beiträge von Mathias_Thielen

    Ok. Nachdem ich die Erklärung in der Apache Dokumentation als unzureichend empfand, habe ich noch etwas gegoogelt und experimentiert.


    Eine Klasse meint nach aktueller Erkenntnis ein Programm, dass unter einem bestimmten Benutzer läuft.


    Ein Programm wäre also z. B. die PHP-Sriptumgebung. Ein Klasse ist dann PHP pro verschiedener Version. Hat also ein Benutzer PHP 7.1, PHP7.2 und PHP7.3 für verschiedene seiner Webseiten am laufen, dann wären das insgesamt 3 Klassen für diesen Benutzer.


    Habe ich also FcgidMaxProcessesPerClass auf 10 gesetzt, würde das Limit für diesen Benutzer in Summe 30 sein.


    Grundsätzlich ist schon der Wert 10 zu hoch. Wenn pro Kunde da 30 Prozesse gestartet werden, dann wären das mehrere GB RAM(abzgl. der gemeinsam genutzten Speicherbereiche), was mir definitiv zu viel ist. Ich bleibe deswegen im Moment bei der Speicherbegrenzung durch das Script in Kombination mit einem Maximalwert für FcgidMaxProcessesPerClass(10).


    Für einen Server mit 8 GB RAM wäre das eine sichere Konfiguration:


    Code
    <IfModule mod_fcgid.c>
      ...
      FcgidMaxProcesses 50
      FcgidMaxProcessesPerClass 5
    </IfModule>

    Auch wenn der Thread schon sehr alt ist, nochmal ein Beitrag dazu:


    Ich habe aktuell einen Server, bei dem mir hauptsächlich diverse Wordpress-Instanzen den Server "wegschießen". D. h. der RAM-Verbrauch erreicht auf dem Server kritische Werte und dann ist der Server erst einmal voll überlastet. D. h. der RAM ist irgendwann aufgebraucht, wonach dann Swap verwendet wird, was natürlich dazu führt, dass der Server extrem langsam wird. Ist der Swap dann auch noch aufgebraucht, dann wird geplanterweise der OOM-Killer aktiv und schießt mir da diverse Prozesse mit dem größten Speicherverbrauch weg. Einer der obersten Kanditaten ist da natürlich der mysqld, wonach dann alle DB-basierten Webseiten auf dem Server offline sind.


    Das Problem tritt gelegentlich auf. Eine Ursache ist vermutlich, wenn ein Kunde im Wordpress-Backend gewisse Websiteeditoren startet.


    Hier mal so der aktuelle Top-20 Speicherverbrauch nach aufräumen(KiB resident Memory):



    Ich habe apache2/prefork/fcgid im Einsatz. Im aktuellen Zustand laufen 64 php-cgi Prozesse.


    fcgid.conf

    Code
    <IfModule mod_fcgid.c>
      AddHandler    fcgid-script .fcgi
      FcgidConnectTimeout 20
      FcgidPassHeader Authorization 
      FcgidMaxProcesses 100
    </IfModule>


    mpm_prefork.conf

    Code
    <IfModule mpm_prefork_module>
            StartServers             15
            MinSpareServers          15
            MaxSpareServers          15
            MaxRequestWorkers        150
            MaxConnectionsPerChild   10
    </IfModule>


    System: Debian 9
    Apache: 2.4.25-3+deb9u9
    php: 7.2 + 7.3


    php.ini
    memory_limit = 64M


    Nachdem ich mir als Sofortmaßnahme erst mal den RAM der virtuellen Maschine von 8 GB auf 16 GB erhöht habe, habe ich jetzt als Workaround erst mal ein Prüfscript(php-Script) laufen, was in kurzen Intervallen schaut, wie viel Speicher die einzelnen Kunden verbrauchen. Wenn ein fest eingestelltes Limit erreicht ist, dann werden die PHP-Prozesse mittels kill sanft beendet. Ich vermute, dass das SIGTERM dazu führt, dass der FCGID-Prozess brav den aktuellen Request zu Ende verarbeitet, bevor er dann sich selbst beendet. Das wäre schön, wenn es so wäre.


    Ich habe das Speicherlimit einmal sehr heruntergedreht und konnte trotz regelmässiger Aufräumarbeiten keinerlei Probleme bei der Webseitenfunktion feststellen. Also insgesamt zumindest scheinbar ein brauchbarer Workaround.


    Das ist das Script:
    https://github.com/megabert/sc…/apache2-user-mem-watcher


    Aber so richtig doll finde ich das trotzdem nicht. Ich habe in der Apache fcgid Dokumentation noch nix gefunden, was mir da helfen könnte.


    Gibt es da bessere Lösungsmöglichkeiten?


    Hilft da evtl. FcgidMaxProcessesPerClass?

    Nur ein ganz kleine Rückmeldung:


    Ich hatte gerade ein LC im Demo-Modus weil die Lizenz abgelaufen ist. War kein Akt. Die vermutete Lösung(systemctl restart liveconfig) hat ja direkt Abhilfe geschaffen.


    Als ich dann mal ins log geschaut habe ...



    ... habe ich mir ja schon gedacht: Es ist ja durchaus löblich, dass LC so wenig nach Hause telefoniert, aber öfters als alle 2-3 Monate könnte man ja schon versuchen die Lizenz zu erneuern, damit man nicht mit solchen Meldungen belästigt wird. ;)

    Hallo zusammen,


    ich bin gerade sehr verwirrt, was das Thema SSH-Zugänge für Endkunden anlegen betrifft. Dabei möchte ich einen zusätzlichen SSH-Zugang anlegen für jemanden der aber auf das LC-Panel keinen Zugriff haben soll.


    Ich habe gerade erfahren, dass der SSH-Zugang nur für den einen FTP-Account vom Account-Typ "System-Benutzer" möglich sein soll. Ist das so? Kann ich nicht einen zusätzlichen Benutzer anlegen der nur SSH-Loginrechte hat?


    Eingesetzte Version: 2.9.1-release(Standard-Edition)
    Betriebssystem: Ubuntu 18.04 LTS


    Im Liveconfig-Handbuch sehe ich dazu keine Information im Inhaltsverzeichnis. Und die Formate der Handbücher, die durchsuchbar wären(PDF, ePub) sind tote Links.


    Danke für Erleuchtung!

    Es frustriert mich ziehmlich, wenn ich hier die Forensuche nutzen will und ich bekomme nur die folgende Rückmeldung bei Eingabe von einem 3-buchstabigen Suchwort:


    "Die folgenden Wörter sind sehr allgemein, zu kurz oder zu lang und wurden daher in der Suchanfrage ignoriert:"


    Ich finde das eine unnötige Einschränkung und verstehe nicht, warum das nicht abgeschaltet wird. Ich wünsche mir eine Erklärung dazu und bin natürlich bereit das zu akzeptieren, wenn es tatsächlich gute Gründe dafür gibt.


    Dass die Vorgabe aus Performancegründen ist, davon gehe ich mal aus. Aber macht das tatsächlich so viel aus?


    Falls es ein Problem des zeitlichen Aufwandes ist, kann ich gerne selbst auf die Suche gehen, wo man das abstellt und gebe dann die Info weiter.

    Vorschlag dazu:


    Ein inkrementelles Suchfeld für Einstellungen. Inkrementell heisst, dass dynamisch nach jedem eingeben eines Buchstabens Konfigurationslinks oder Dokumentationslinks eingeblendet werden auf die man klicken kann.


    Bei ssl kommt z. B. die Let's Encrypt Zertifikatsverwaltung, oder vielleicht nachgeordnet die https Einstellungsseiten der Virtualhosts.


    Die Art und Weise ist umgesetzt z. B. bei check_mk für die Suche von checks(Das dürften mittlerweile ein paar Hunderte von Checks sein. Ist nicht-inkrementell) und beim Linux KDE-Desktop/Windows 10 im Startmenü.


    Ich könnte mir vorstellen, dass eine so präsentierte Hilfe vielleicht auch mal gelesen wird. Die Hilfte als HTML-Seiten auf dem Server mitzuinstallieren wäre vielleicht auch eine Überlegung wert.


    Vielleicht kann man dazu auch direkt die Reichweite des schon vorhandenen Suchfeldes erweitern.

    kk:


    Vorher: 2.7.4 (r5214)
    Dann: 2.9.1


    Distribution ist wie geschrieben Debian 9, was per dist-upgrade bisher 2 Major-Versionen hochgezogen wurde.


    Mein Kollege hatte Sie hier kontaktiert:
    [LC#2019120234000036] Let's Encrypt / Invalid response / 404 Not Found


    ---


    Ansonsten ist da eine VHost-Config derzeit noch auf Nur-Lesend geschaltet(chattr +i), weil die spezielle Einstellungen hat.

    Hallo zusammen,


    ich habe hier einen Let's Encrypt Server(Derzeit im Betrieb per Upgrade auf Debian 9 gezogen). Nach dem Upgrade auf auf LC 2.9.0(Aktuell installiert LC 2.9.1) wurden die Let's Encrypt Zertifikate nicht mehr erneuert.


    Das sind die Einträge im Logfile:


    Code
    [2019/12/02 18:55:08.607386] [31385|31397] successfully wrote domain validation file '/.well-known/acme-challenge/goAnoffaWz7g3gubWblivy2f10THD-kZvFIOFxyZ2eM' for domain 'www.meinedomain.at'
    [2019/12/02 18:55:08.608471] [31385|31397] ACME2: triggering http validation for 'www.meinedomain.at'... (AU_ID=4)
    'meinedomain.at'
    [2019/12/02 18:55:10.604840] [31385|31396] ACME2: triggering http validation for 'meinedomain.at'... (AU_ID=3)
    [2019/12/02 18:55:37.797488] [31385|20788] ACME2: authorization status for 'meinedomain.at': invalid
    [2019/12/02 18:55:38.332348] [31385|20788] ACME2: authorization status for 'www.meinedomain.at': invalid
    'meinedomain.at'
    [2019/12/02 18:55:41.141087] [31385|31395] successfully deleted domain validation file '/.well-known/acme-challenge/goAnoffaWz7g3gubWblivy2f10THD-kZvFIOFxyZ2eM' for domain 'www.meinedomain.at'




    Ich habe mir die Webserverkonfiguration und -logs mal angeschaut und gemerkt, dass der Ablagepfad für die Let's Encrypt-Challenge jetzt mittlerweile anders ist als vorher.


    Ansonsten habe ich auch noch gesehen, dass da für Let's Encrypt jetzt zusätzliche Rewrite-Rules drin sind bei manchen Kunden, und zwar diese da...


    Apache Configuration
    RewriteMap  "lc" "int:tolower"
            RewriteCond %{REQUEST_URI} ^/\.well-known/(.*/)?([^/]*)$
            RewriteCond /var/www/web566/htdocs/.well-known/%1%2 !-f
            RewriteCond /var/www/.well-known/htdocs/%1${lc:%{HTTP_HOST}}.%2 -f
            RewriteRule / /var/www/.well-known/htdocs/%1${lc:%{HTTP_HOST}}.%2 [T=text/plain,L]


    Nach dem Neuschreiben der VHost-Konfiguration funktioniert verständlicherweise auch wieder Let's Encrypt.


    D. h. wahrscheinlich muss ich jetzt jede VHost-Konfiguration neu erzeugen lassen. Ich kenne nur den händischen Weg, dass ich irgendwas im Webinterface an den Webeinstellungen des Kunden ändere und dann wird die Konfig für den Kunden neu geschrieben.


    Kann man die gesamte Webserverkonfiguration(alle Kunden) automatisch neu erzeugen lassen?