Heim  >  Artikel  >  Backend-Entwicklung  >  Debuggen des Nginx-Quellcodes (3).

Debuggen des Nginx-Quellcodes (3).

WBOY
WBOYOriginal
2016-08-08 09:28:021334Durchsuche

Fortsetzung des vorherigen Artikels

Wenn Nginx ausgeführt wird, wird es als Hintergrundprozess mit einem Master- und drei Prozessprozessen ausgeführt. Um das Debuggen zu erleichtern, muss diese Konfiguration geändert werden.

Ändern Sie den Quellcode direkt hier. Um die erneute Erstellung zu vereinfachen, ändern Sie zuerst das Makefile
Ändern Sie das ursprüngliche

<code><span>clean:</span>
    rm -rf Makefile objs</code>

in:

<code><span>clean</span>:
    rm -rf nginx objs<span>/ngx_modules.o objs/src/core*.o objs/src/event/</span>*.o objs<span>/src/event/modules/</span>*.o objs<span>/src/http/</span>*.o objs<span>/src/http/modules/</span>*.o objs<span>/src/http/modules/proxy/</span>*.o objs<span>/src/os/unix/</span>*.o</code>

, damit nicht alle Makefile-Dateien nach der Bereinigung gelöscht werden.

Kommentieren Sie den Code im Zusammenhang mit Daemon und Multiprozess in core/nginx.c aus:

<code><span>/*
    if (!ngx_inherited && ccf->daemon) {
        if (ngx_daemon(cycle->log) == NGX_ERROR) {
            return 1;
        }

        ngx_daemonized = 1;
    }
    */</span></code>

und

<code><span>printf</span>(<span>"[main] to start ngx_single_process_cycle\n"</span>);

    <span>///if (ngx_process == NGX_PROCESS_MASTER) {</span><span>///    ngx_master_process_cycle(cycle, &ctx);</span><span>///} else {</span>
        ngx_single_process_cycle(cycle, &ctx);
    <span>///}</span></code>

Ich habe oben ein printf hinzugefügt, weil nginx wird direkt in der Konsole ausgeführt, überprüfen Sie den Druck und ändern Sie für den späteren Start die Portnummer in conf/nginx.conf auf 8080, führen Sie make erneut aus, und Sie können die gedruckte Ausgabe auf der Konsole sehen. Wenn der Browser auf http://localhost:8080 zugreift, wird ebenfalls Erfolg zurückgegeben und andere Protokollinformationen werden weiterhin in Dateien im Protokollverzeichnis ausgegeben.

Das Obige stellt das Debuggen des Nginx-Quellcodes (3) vor, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn